From a0378c10a913364a4bb4702ed320b51856d95a70 Mon Sep 17 00:00:00 2001 From: Joel Jeremy Marquez Date: Fri, 13 Feb 2026 11:33:21 -0800 Subject: [PATCH] Move redux state to react-query - tags states (#6941) * Move redux state to react-query - tags states * Add release notes for PR #6941 * Cleanup sendThrow * Cleanup * Update import * Fix import --------- Co-authored-by: github-actions[bot] --- .../src/components/tags/ManageTags.tsx | 26 ++- .../src/components/tags/TagCreationRow.tsx | 8 +- .../src/components/tags/TagEditor.tsx | 7 +- .../src/components/tags/TagRow.tsx | 13 +- .../desktop-client/src/hooks/useTagCSS.ts | 2 +- packages/desktop-client/src/hooks/useTags.ts | 19 +- packages/desktop-client/src/index.tsx | 2 - packages/desktop-client/src/redux/store.ts | 5 - packages/desktop-client/src/tags/index.ts | 2 + packages/desktop-client/src/tags/mutations.ts | 158 +++++++++++++++++ packages/desktop-client/src/tags/queries.ts | 20 +++ packages/desktop-client/src/tags/tagsSlice.ts | 165 ------------------ packages/loot-core/src/server/tags/app.ts | 6 +- upcoming-release-notes/6941.md | 6 + 14 files changed, 226 insertions(+), 213 deletions(-) create mode 100644 packages/desktop-client/src/tags/index.ts create mode 100644 packages/desktop-client/src/tags/mutations.ts create mode 100644 packages/desktop-client/src/tags/queries.ts delete mode 100644 packages/desktop-client/src/tags/tagsSlice.ts create mode 100644 upcoming-release-notes/6941.md diff --git a/packages/desktop-client/src/components/tags/ManageTags.tsx b/packages/desktop-client/src/components/tags/ManageTags.tsx index d65e01b55b..36a941e76b 100644 --- a/packages/desktop-client/src/components/tags/ManageTags.tsx +++ b/packages/desktop-client/src/components/tags/ManageTags.tsx @@ -22,16 +22,17 @@ import { useSelected, } from '@desktop-client/hooks/useSelected'; import { useTags } from '@desktop-client/hooks/useTags'; -import { useDispatch } from '@desktop-client/redux'; -import { deleteAllTags, findTags } from '@desktop-client/tags/tagsSlice'; +import { + useDeleteTagsMutation, + useDiscoverTagsMutation, +} from '@desktop-client/tags'; export function ManageTags() { const { t } = useTranslation(); - const dispatch = useDispatch(); const [filter, setFilter] = useState(''); const [hoveredTag, setHoveredTag] = useState(); const [create, setCreate] = useState(false); - const tags = useTags(); + const { data: tags = [] } = useTags(); const filteredTags = useMemo(() => { return filter === '' @@ -43,10 +44,19 @@ export function ManageTags() { const selectedInst = useSelected('manage-tags', filteredTags, []); + const { mutate: discoverTags } = useDiscoverTagsMutation(); + const { mutate: deleteTags } = useDeleteTagsMutation(); + const onDeleteSelected = useCallback(async () => { - dispatch(deleteAllTags([...selectedInst.items])); - selectedInst.dispatch({ type: 'select-none' }); - }, [dispatch, selectedInst]); + deleteTags( + { ids: [...selectedInst.items] }, + { + onSuccess: () => { + selectedInst.dispatch({ type: 'select-none' }); + }, + }, + ); + }, [deleteTags, selectedInst]); return ( @@ -75,7 +85,7 @@ export function ManageTags() { Add New -