Update local model stores in all mutations (#129)

This commit is contained in:
Gregory Schier
2024-10-23 09:54:43 -07:00
committed by GitHub
parent c5e6d6f2cb
commit 7759649963
29 changed files with 270 additions and 79 deletions

View File

@@ -1,15 +1,21 @@
import { useMutation } from '@tanstack/react-query';
import type { Settings } from '@yaakapp-internal/models';
import { useSetAtom } from 'jotai';
import { getSettings } from '../lib/store';
import { invokeCmd } from '../lib/tauri';
import { settingsAtom } from './useSettings';
export function useUpdateSettings() {
return useMutation<void, unknown, Partial<Settings>>({
const setSettings = useSetAtom(settingsAtom);
return useMutation<Settings, unknown, Partial<Settings>>({
mutationKey: ['update_settings'],
mutationFn: async (patch) => {
const settings = await getSettings();
const newSettings: Settings = { ...settings, ...patch };
await invokeCmd('cmd_update_settings', { settings: newSettings });
return invokeCmd<Settings>('cmd_update_settings', { settings: newSettings });
},
onSuccess: (settings) => {
setSettings(settings);
},
});
}