import { useEffect, useState } from "react"; import { useMemoCacheStore } from "@/store/v1"; import Icon from "../Icon"; interface Props { relationList: MemoRelation[]; setRelationList: (relationList: MemoRelation[]) => void; } const RelationListView = (props: Props) => { const { relationList, setRelationList } = props; const memoCacheStore = useMemoCacheStore(); const [referencingMemoList, setReferencingMemoList] = useState([]); useEffect(() => { (async () => { const requests = relationList .filter((relation) => relation.type === "REFERENCE") .map(async (relation) => { return await memoCacheStore.getOrFetchMemoById(relation.relatedMemoId); }); const list = await Promise.all(requests); setReferencingMemoList(list); })(); }, [relationList]); const handleDeleteRelation = async (memo: Memo) => { setRelationList(relationList.filter((relation) => relation.relatedMemoId !== memo.id)); }; return ( <> {referencingMemoList.length > 0 && (
{referencingMemoList.map((memo) => { return (
handleDeleteRelation(memo)} > #{memo.id} {memo.content}
); })}
)} ); }; export default RelationListView;