import { useState, useEffect, useRef } from "react"; import Box from "@mui/material/Box"; import Button from "@mui/material/Button"; import { useTranslation } from "react-i18next"; import { SelectButton } from "./SelectButton"; import { convertNumberToPersian, formatNumber, useWindowSize, } from "../lib/utils"; import { Donation } from "../types"; import { DonationList } from "./DonationList"; import { BASE_PATH } from "../lib/constants"; export const DonationView = () => { const { t, i18n } = useTranslation(undefined, {keyPrefix: 'donation'}); const [donations, setDonations] = useState([]); const [sortBy, setSortBy] = useState<"amount" | "date">("amount"); const [crPaymentShow, setCRPaymentShow] = useState(false); const _ = useWindowSize(); const totalAmount = donations.reduce((pv, cv) => pv + cv.amount, 0); const sortedDonations = sortBy === "amount" ? donations.sort((a, b) => (a.amount < b.amount ? 1 : -1)) : donations.sort((a, b) => (a.date > b.date ? 1 : -1)); useEffect(() => { const fetchDonations = async () => { const response = await fetch(`${BASE_PATH}/donations.json`); setDonations(await response.json()); }; fetchDonations(); }, []); return (

{t("payment_title")}

{" "}


({ display: "inline-block", border: 1, borderColor: theme.palette.devider, p: 0.5, })} > bc1q0e0s5my3cwv26k265hcfef28zk7sxd78vu3cdr

{t("donations_from")}:{" "} {i18n.language === "fa" && `${convertNumberToPersian(formatNumber(totalAmount, "٬"))} ${t( "toman", )}`} {i18n.language !== "fa" && ( {`${formatNumber(totalAmount, ",")} ${t("toman")} = ${Math.ceil( totalAmount / 26000, )} USD`} )} {t("order_by")}: setSortBy("date")} selected={sortBy === "date"} size="small" sx={{ fontSize: "0.8rem", minWidth: "unset" }} > {t("date")} setSortBy("amount")} selected={sortBy === "amount"} size="small" sx={{ fontSize: "0.8rem", minWidth: "unset" }} > {t("amount")} {!donations && "fetching data..."} {donations && ( <> {!donations && "fetching data..."} {donations && } )} {t("list_source")}
); };