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,19 @@
import { useMutation } from '@tanstack/react-query';
import type { CookieJar } from '@yaakapp-internal/models';
import {useSetAtom} from "jotai";
import { trackEvent } from '../lib/analytics';
import { invokeCmd } from '../lib/tauri';
import { useActiveWorkspace } from './useActiveWorkspace';
import {cookieJarsAtom} from "./useCookieJars";
import { usePrompt } from './usePrompt';
import {updateModelList} from "./useSyncModelStores";
export function useCreateCookieJar() {
const workspace = useActiveWorkspace();
const prompt = usePrompt();
const setCookieJars = useSetAtom(cookieJarsAtom);
return useMutation<CookieJar>({
return useMutation<CookieJar | null>({
mutationKey: ['create_cookie_jar'],
mutationFn: async () => {
if (workspace === null) {
@@ -23,8 +27,16 @@ export function useCreateCookieJar() {
label: 'Name',
defaultValue: 'My Jar',
});
if (name == null) return null;
return invokeCmd('cmd_create_cookie_jar', { workspaceId: workspace.id, name });
},
onSuccess: (cookieJar) => {
if (cookieJar == null) return;
// Optimistic update
setCookieJars(updateModelList(cookieJar));
},
onSettled: () => trackEvent('cookie_jar', 'create'),
});
}