mirror of
https://github.com/usememos/memos.git
synced 2025-06-05 22:09:59 +02:00
chore: add skip cache requesting
This commit is contained in:
@ -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) => {
|
||||||
|
Reference in New Issue
Block a user