Files
yaak/src-web/hooks/useUpdateSettings.ts
2025-01-20 13:44:11 -08:00

21 lines
740 B
TypeScript

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