diff --git a/packages/desktop-client/src/components/modals/ImportTransactions.jsx b/packages/desktop-client/src/components/modals/ImportTransactions.jsx index 4c9bf2e3c85805d94feebe71d7a5347a097bb157..d24ae24b602b1c13e837cdb134c4ed9691499b60 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 0000000000000000000000000000000000000000..7d4497da649258f2a1c929228506239c43f1d313 --- /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 0000000000000000000000000000000000000000..6334f66c26e45108848a0b68c435f89cfc30e4dc --- /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.