import * as utils from "../helpers/utils"; import useI18n from "../hooks/useI18n"; import useToggle from "../hooks/useToggle"; import { memoService } from "../services"; import toastHelper from "./Toast"; import MemoContent from "./MemoContent"; import MemoResources from "./MemoResources"; import "../less/memo.less"; interface Props { memo: Memo; } const ArchivedMemo: React.FC = (props: Props) => { const { memo: propsMemo } = props; const memo = { ...propsMemo, createdAtStr: utils.getDateTimeString(propsMemo.createdTs), archivedAtStr: utils.getDateTimeString(propsMemo.updatedTs ?? Date.now()), }; const { t } = useI18n(); const [showConfirmDeleteBtn, toggleConfirmDeleteBtn] = useToggle(false); const handleDeleteMemoClick = async () => { if (showConfirmDeleteBtn) { try { await memoService.deleteMemoById(memo.id); await memoService.fetchMemos(); } catch (error: any) { console.error(error); toastHelper.error(error.response.data.message); } } else { toggleConfirmDeleteBtn(); } }; const handleRestoreMemoClick = async () => { try { await memoService.patchMemo({ id: memo.id, rowStatus: "NORMAL", }); await memoService.fetchMemos(); toastHelper.info(t("message.restored-successfully")); } catch (error: any) { console.error(error); toastHelper.error(error.response.data.message); } }; const handleMouseLeaveMemoWrapper = () => { if (showConfirmDeleteBtn) { toggleConfirmDeleteBtn(false); } }; return (
{t("common.archived-at")} {memo.archivedAtStr}
{t("common.restore")} {t("common.delete")} {showConfirmDeleteBtn ? "!" : ""}
); }; export default ArchivedMemo;