import { useEffect, useState } from "react"; import useLoading from "../hooks/useLoading"; import { memoService } from "../services"; import { useAppSelector } from "../store"; 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 { destroy } = props; const memos = useAppSelector((state) => state.memo.memos); const loadingState = useLoading(); const [archivedMemos, setArchivedMemos] = useState([]); useEffect(() => { memoService .fetchArchivedMemos() .then((result) => { setArchivedMemos(result); }) .catch((error) => { console.error(error); toastHelper.error(error.response.data.message); }) .finally(() => { loadingState.setFinish(); }); }, [memos]); return ( <>

🗂 Archived Memos

{loadingState.isLoading ? (

fetching data...

) : archivedMemos.length === 0 ? (

No archived memos.

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