From 7231959f81603c22f544744d7e2981b641a9225b Mon Sep 17 00:00:00 2001 From: Matiss Janis Aboltins <matiss@mja.lv> Date: Mon, 9 Sep 2024 19:18:55 +0100 Subject: [PATCH] :recycle: (synced-prefs) refactor ImportedTransactions usage of prefs (#3408) --- .../components/modals/ImportTransactions.jsx | 5 ++--- .../src/hooks/useSyncedPrefs.ts | 22 +++++++++++++++++++ upcoming-release-notes/3408.md | 6 +++++ 3 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 packages/desktop-client/src/hooks/useSyncedPrefs.ts create mode 100644 upcoming-release-notes/3408.md diff --git a/packages/desktop-client/src/components/modals/ImportTransactions.jsx b/packages/desktop-client/src/components/modals/ImportTransactions.jsx index 4c9bf2e3c..d24ae24b6 100644 --- a/packages/desktop-client/src/components/modals/ImportTransactions.jsx +++ b/packages/desktop-client/src/components/modals/ImportTransactions.jsx @@ -11,7 +11,7 @@ import { import { useActions } from '../../hooks/useActions'; import { useDateFormat } from '../../hooks/useDateFormat'; -import { useLocalPrefs } from '../../hooks/useLocalPrefs'; +import { useSyncedPrefs } from '../../hooks/useSyncedPrefs'; import { SvgDownAndRightArrow } from '../../icons/v2'; import { theme, styles } from '../../style'; import { Button, ButtonWithLoading } from '../common/Button2'; @@ -840,13 +840,12 @@ function FieldMappings({ export function ImportTransactions({ options }) { const dateFormat = useDateFormat() || 'MM/dd/yyyy'; - const prefs = useLocalPrefs(); + const [prefs, savePrefs] = useSyncedPrefs(); const { parseTransactions, importTransactions, importPreviewTransactions, getPayees, - savePrefs, } = useActions(); const [multiplierAmount, setMultiplierAmount] = useState(''); diff --git a/packages/desktop-client/src/hooks/useSyncedPrefs.ts b/packages/desktop-client/src/hooks/useSyncedPrefs.ts new file mode 100644 index 000000000..7d4497da6 --- /dev/null +++ b/packages/desktop-client/src/hooks/useSyncedPrefs.ts @@ -0,0 +1,22 @@ +import { useCallback } from 'react'; +import { useDispatch } from 'react-redux'; + +import { savePrefs } from 'loot-core/client/actions'; +import { type SyncedPrefs } from 'loot-core/src/types/prefs'; + +import { useLocalPrefs } from './useLocalPrefs'; + +type SetSyncedPrefsAction = (value: Partial<SyncedPrefs>) => void; + +export function useSyncedPrefs(): [SyncedPrefs, SetSyncedPrefsAction] { + // TODO: implement real logic (follow-up PR) + const dispatch = useDispatch(); + const setPrefs = useCallback<SetSyncedPrefsAction>( + newPrefs => { + dispatch(savePrefs(newPrefs)); + }, + [dispatch], + ); + + return [useLocalPrefs(), setPrefs]; +} diff --git a/upcoming-release-notes/3408.md b/upcoming-release-notes/3408.md new file mode 100644 index 000000000..6334f66c2 --- /dev/null +++ b/upcoming-release-notes/3408.md @@ -0,0 +1,6 @@ +--- +category: Maintenance +authors: [MatissJanis] +--- + +SyncedPrefs: refactor `ImportTransactions` usage of prefs to use a common hook. -- GitLab