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
.filter((relation) => relation.type === MemoRelation_Type.REFERENCE)
.map(async (relation) => {
return await memoStore.getOrFetchMemoById(relation.relatedMemoId);
return await memoStore.getOrFetchMemoById(relation.relatedMemoId, { skipStore: true });
});
const list = await Promise.all(requests);
setReferencingMemoList(list);

@ -22,13 +22,13 @@ const MemoRelationListView = (props: Props) => {
const referencingMemoList = await Promise.all(
relationList
.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);
const referencedMemoList = await Promise.all(
relationList
.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);
})();

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

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

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

Loading…
Cancel
Save