chore: fix fetch comments

This commit is contained in:
Steven 2023-10-05 08:58:44 +08:00
parent 16dad8b00d
commit 8aae0d00cd
3 changed files with 10 additions and 14 deletions

View File

@ -70,20 +70,12 @@ const MemoDetail = () => {
}
(async () => {
await fetchMemoComments();
const commentRelations = memo.relationList.filter((relation) => relation.relatedMemoId === memo.id && relation.type === "COMMENT");
const requests = commentRelations.map((relation) => memoStore.fetchMemoById(relation.memoId));
await Promise.all(requests);
})();
}, [memo?.relationList]);
const fetchMemoComments = async () => {
if (!memo) {
return;
}
const commentRelations = memo.relationList.filter((relation) => relation.relatedMemoId === memo.id && relation.type === "COMMENT");
const requests = commentRelations.map((relation) => memoStore.fetchMemoById(relation.memoId));
await Promise.all(requests);
};
if (!memo) {
return null;
}
@ -107,6 +99,10 @@ const MemoDetail = () => {
toast.success(t("message.succeed-copy-link"));
};
const handleCommentCreated = async () => {
await memoStore.fetchMemoById(memoId);
};
return (
<>
<section className="relative top-0 w-full min-h-full overflow-x-hidden bg-zinc-100 dark:bg-zinc-900">
@ -210,7 +206,7 @@ const MemoDetail = () => {
key={memo.id}
className="!border"
relationList={[{ memoId: UNKNOWN_ID, relatedMemoId: memo.id, type: "COMMENT" }]}
onConfirm={() => fetchMemoComments()}
onConfirm={handleCommentCreated}
/>
)}
</div>

View File

@ -14,7 +14,7 @@ const memoSlice = createSlice({
upsertMemos: (state, action: PayloadAction<Memo[]>) => {
return {
...state,
memos: uniqBy([...state.memos, ...action.payload], "id"),
memos: uniqBy([...action.payload, ...state.memos], "id"),
};
},
createMemo: (state, action: PayloadAction<Memo>) => {

View File

@ -21,7 +21,7 @@ const resourceSlice = createSlice({
upsertResources: (state, action: PayloadAction<Resource[]>) => {
return {
...state,
resources: uniqBy([...state.resources, ...action.payload], "id"),
resources: uniqBy([...action.payload, ...state.resources], "id"),
};
},
patchResource: (state, action: PayloadAction<Partial<Resource>>) => {