Commit b2ec0d12 authored by Steven's avatar Steven

chore: add skip cache requesting

parent 5673e29e
...@@ -19,7 +19,7 @@ const RelationListView = (props: Props) => { ...@@ -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) => { ...@@ -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) => { ...@@ -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 = () => { ...@@ -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( ...@@ -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( ...@@ -35,10 +35,12 @@ export const useMemoV1Store = create(
throw new Error("Memo not found"); throw new Error("Memo not found");
} }
if (!options?.skipStore) {
set((state) => { set((state) => {
state.memoById.set(id, res.memo as Memo); state.memoById.set(id, res.memo as Memo);
return cloneDeep(state); return cloneDeep(state);
}); });
}
return res.memo; return res.memo;
}, },
getMemoById: (id: number) => { getMemoById: (id: number) => {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment