import { Divider, Flex, Progress, Stack, Text } from "@mantine/core"; import { ModalsContextProps } from "@mantine/modals/lib/context"; import moment from "moment"; import { FormattedMessage } from "react-intl"; import { translateOutsideContext } from "../../hooks/useTranslate.hook"; import { FileMetaData } from "../../types/File.type"; import { MyShare } from "../../types/share.type"; import { byteToHumanSizeString } from "../../utils/fileSize.util"; import CopyTextField from "../upload/CopyTextField"; const showShareInformationsModal = ( modals: ModalsContextProps, share: MyShare, appUrl: string, maxShareSize: number, ) => { const t = translateOutsideContext(); const link = `${appUrl}/s/${share.id}`; let shareSize: number = 0; for (let file of share.files as FileMetaData[]) shareSize += parseInt(file.size); const formattedShareSize = byteToHumanSizeString(shareSize); const formattedMaxShareSize = byteToHumanSizeString(maxShareSize); const shareSizeProgress = (shareSize / maxShareSize) * 100; const formattedCreatedAt = moment(share.createdAt).format("LLL"); const formattedExpiration = moment(share.expiration).unix() === 0 ? "Never" : moment(share.expiration).format("LLL"); return modals.openModal({ title: t("account.shares.modal.share-informations"), children: ( :{" "} {share.id} :{" "} {share.description || "No description"} :{" "} {formattedCreatedAt} :{" "} {formattedExpiration} :{" "} {formattedShareSize} / {formattedMaxShareSize} ( {shareSizeProgress.toFixed(1)}%) {shareSize / maxShareSize < 0.1 && ( {formattedShareSize} )} = 0.1 ? formattedShareSize : ""} style={{ width: shareSize / maxShareSize < 0.1 ? "70%" : "80%" }} size="xl" radius="xl" /> {formattedMaxShareSize} ), }); }; export default showShareInformationsModal;