From dc15e8f30f842b08badf2f247843741cc5116637 Mon Sep 17 00:00:00 2001 From: Steven Date: Tue, 8 Oct 2024 22:22:45 +0800 Subject: [PATCH] chore: implement memo metadata store --- .../ExploreSidebar/ExploreSidebar.tsx | 16 +++++ .../components/HomeSidebar/HomeSidebar.tsx | 17 +++++ .../components/HomeSidebar/TagsSection.tsx | 31 +++------ .../MemoEditor/ActionButton/TagSelector.tsx | 21 ++---- .../MemoEditor/Editor/TagSuggestions.tsx | 9 +-- web/src/components/RenameTagDialog.tsx | 6 +- web/src/components/UserStatisticsView.tsx | 24 ++----- web/src/store/v1/index.ts | 2 +- web/src/store/v1/memoMetadata.ts | 68 +++++++++++++++++++ web/src/store/v1/tag.ts | 62 ----------------- 10 files changed, 130 insertions(+), 126 deletions(-) create mode 100644 web/src/store/v1/memoMetadata.ts delete mode 100644 web/src/store/v1/tag.ts diff --git a/web/src/components/ExploreSidebar/ExploreSidebar.tsx b/web/src/components/ExploreSidebar/ExploreSidebar.tsx index ae2ef4ad..a550d5db 100644 --- a/web/src/components/ExploreSidebar/ExploreSidebar.tsx +++ b/web/src/components/ExploreSidebar/ExploreSidebar.tsx @@ -1,5 +1,8 @@ import clsx from "clsx"; +import { useLocation } from "react-router-dom"; +import useDebounce from "react-use/lib/useDebounce"; import SearchBar from "@/components/SearchBar"; +import { useMemoList, useMemoMetadataStore } from "@/store/v1"; import TagsSection from "../HomeSidebar/TagsSection"; interface Props { @@ -7,6 +10,19 @@ interface Props { } const ExploreSidebar = (props: Props) => { + const location = useLocation(); + const memoList = useMemoList(); + const memoMetadataStore = useMemoMetadataStore(); + + useDebounce( + async () => { + if (memoList.size() === 0) return; + await memoMetadataStore.fetchMemoMetadata({ location }); + }, + 300, + [memoList.size(), location.pathname], + ); + return (