import { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { useMemoStore } from "../store/module"; import useLoading from "../hooks/useLoading"; import Icon from "./Icon"; import { generateDialog } from "./Dialog"; import toastHelper from "./Toast"; import ArchivedMemo from "./ArchivedMemo"; import "../less/archived-memo-dialog.less"; type Props = DialogProps; const ArchivedMemoDialog: React.FC = (props: Props) => { const { t } = useTranslation(); 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); toastHelper.error(error.response.data.message); }) .finally(() => { loadingState.setFinish(); }); }, [memos]); return ( <>

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

{loadingState.isLoading ? (

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

) : archivedMemos.length === 0 ? (

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

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