chore: add skip cache requesting

pull/2658/head^2
Steven 2 years ago
parent 5673e29e51
commit b2ec0d1217

@ -19,7 +19,7 @@ const RelationListView = (props: Props) => {
const requests = relationList const requests = relationList
.filter((relation) => relation.type === MemoRelation_Type.REFERENCE) .filter((relation) => relation.type === MemoRelation_Type.REFERENCE)
.map(async (relation) => { .map(async (relation) => {
return await memoStore.getOrFetchMemoById(relation.relatedMemoId); return await memoStore.getOrFetchMemoById(relation.relatedMemoId, { skipStore: true });
}); });
const list = await Promise.all(requests); const list = await Promise.all(requests);
setReferencingMemoList(list); setReferencingMemoList(list);

@ -22,13 +22,13 @@ const MemoRelationListView = (props: Props) => {
const referencingMemoList = await Promise.all( const referencingMemoList = await Promise.all(
relationList relationList
.filter((relation) => relation.memoId === memo.id && relation.relatedMemoId !== memo.id) .filter((relation) => relation.memoId === memo.id && relation.relatedMemoId !== memo.id)
.map((relation) => memoStore.getOrFetchMemoById(relation.relatedMemoId)) .map((relation) => memoStore.getOrFetchMemoById(relation.relatedMemoId, { skipStore: true }))
); );
setReferencingMemoList(referencingMemoList); setReferencingMemoList(referencingMemoList);
const referencedMemoList = await Promise.all( const referencedMemoList = await Promise.all(
relationList relationList
.filter((relation) => relation.memoId !== memo.id && relation.relatedMemoId === memo.id) .filter((relation) => relation.memoId !== memo.id && relation.relatedMemoId === memo.id)
.map((relation) => memoStore.getOrFetchMemoById(relation.memoId)) .map((relation) => memoStore.getOrFetchMemoById(relation.memoId, { skipStore: true }))
); );
setReferencedMemoList(referencedMemoList); setReferencedMemoList(referencedMemoList);
})(); })();

@ -102,7 +102,7 @@ const MemoView: React.FC<Props> = (props: Props) => {
(relation) => relation.memoId === memo.id && relation.type === MemoRelation_Type.COMMENT (relation) => relation.memoId === memo.id && relation.type === MemoRelation_Type.COMMENT
)?.relatedMemoId; )?.relatedMemoId;
if (parentMemoId) { if (parentMemoId) {
memoStore.getOrFetchMemoById(parentMemoId).then((memo: Memo) => { memoStore.getOrFetchMemoById(parentMemoId, { skipStore: true }).then((memo: Memo) => {
setParentMemo(memo); setParentMemo(memo);
}); });
} }

@ -106,7 +106,7 @@ const MemoDetail = () => {
const handleCommentCreated = async (commentId: number) => { const handleCommentCreated = async (commentId: number) => {
await memoStore.getOrFetchMemoById(commentId); await memoStore.getOrFetchMemoById(commentId);
await memoStore.getOrFetchMemoById(memo.id, true /* skip cache */); await memoStore.getOrFetchMemoById(memo.id, { skipCache: true });
}; };
return ( return (

@ -22,9 +22,9 @@ export const useMemoV1Store = create(
}); });
return memos; return memos;
}, },
getOrFetchMemoById: async (id: number, skipCache = false) => { getOrFetchMemoById: async (id: number, options?: { skipCache?: boolean; skipStore?: boolean }) => {
const memo = get().memoById.get(id); const memo = get().memoById.get(id);
if (memo && !skipCache) { if (memo && !options?.skipCache) {
return memo; return memo;
} }
@ -35,10 +35,12 @@ export const useMemoV1Store = create(
throw new Error("Memo not found"); throw new Error("Memo not found");
} }
set((state) => { if (!options?.skipStore) {
state.memoById.set(id, res.memo as Memo); set((state) => {
return cloneDeep(state); state.memoById.set(id, res.memo as Memo);
}); return cloneDeep(state);
});
}
return res.memo; return res.memo;
}, },
getMemoById: (id: number) => { getMemoById: (id: number) => {

Loading…
Cancel
Save