import { useEffect, useState } from "react"; import { toast } from "react-hot-toast"; import useLoading from "@/hooks/useLoading"; import { useMemoStore } from "@/store/module"; import { useTranslate } from "@/utils/i18n"; import ArchivedMemo from "./ArchivedMemo"; import { generateDialog } from "./Dialog"; import Icon from "./Icon"; import "@/less/archived-memo-dialog.less"; type Props = DialogProps; const ArchivedMemoDialog: React.FC = (props: Props) => { const t = useTranslate(); const { destroy } = props; const memoStore = useMemoStore(); const memos = memoStore.state.memos; const loadingState = useLoading(); const [archivedMemos, setArchivedMemos] = useState([]); useEffect(() => { memoStore .fetchArchivedMemos() .then((result) => { setArchivedMemos(result); }) .catch((error) => { console.error(error); toast.error(error.response.data.message); }) .finally(() => { loadingState.setFinish(); }); }, [memos]); return ( <>

{t("memo.archived-memos")}

{loadingState.isLoading ? (

{t("memo.fetching-data")}

) : archivedMemos.length === 0 ? (

{t("memo.no-archived-memos")}

) : (
{archivedMemos.map((memo) => ( ))}
)}
); }; export default function showArchivedMemoDialog(): void { generateDialog( { className: "archived-memo-dialog", dialogName: "archived-memo-dialog", }, ArchivedMemoDialog, {} ); }