diff --git a/web/src/components/HomeSidebar/TagsSection.tsx b/web/src/components/HomeSidebar/TagsSection.tsx index 48a7895b..ce1256bb 100644 --- a/web/src/components/HomeSidebar/TagsSection.tsx +++ b/web/src/components/HomeSidebar/TagsSection.tsx @@ -56,14 +56,7 @@ const TagsSection = () => { tagText += "/" + key; } - let obj = null; - - for (const t of tempObj.subTags) { - if (t.text === tagText) { - obj = t; - break; - } - } + let obj = tempObj.subTags.find((t: Tag) => t.text === tagText); if (!obj) { obj = { @@ -79,7 +72,7 @@ const TagsSection = () => { } setTags(root.subTags as Tag[]); - }, [tagsText]); + }, [tagsText.join(",")]); return (
diff --git a/web/src/components/RenameTagDialog.tsx b/web/src/components/RenameTagDialog.tsx index 5d722733..ac9d5c74 100644 --- a/web/src/components/RenameTagDialog.tsx +++ b/web/src/components/RenameTagDialog.tsx @@ -5,6 +5,7 @@ import { tagServiceClient } from "@/grpcweb"; import useCurrentUser from "@/hooks/useCurrentUser"; import useLoading from "@/hooks/useLoading"; import { useFilterStore } from "@/store/module"; +import { useTagStore } from "@/store/v1"; import { useTranslate } from "@/utils/i18n"; import { generateDialog } from "./Dialog"; import Icon from "./Icon"; @@ -16,6 +17,7 @@ interface Props extends DialogProps { const RenameTagDialog: React.FC = (props: Props) => { const { tag, destroy } = props; const t = useTranslate(); + const tagStore = useTagStore(); const filterStore = useFilterStore(); const currentUser = useCurrentUser(); const [newName, setNewName] = useState(tag); @@ -43,6 +45,7 @@ const RenameTagDialog: React.FC = (props: Props) => { }); toast.success("Rename tag successfully"); filterStore.setTagFilter(newName); + tagStore.fetchTags({ skipCache: true }); } catch (error: any) { console.error(error); toast.error(error.details);