From f7f1553f1db3c8df7bba042805f751296ff771fd Mon Sep 17 00:00:00 2001 From: Lucas Oliveira Date: Tue, 23 Dec 2025 13:21:46 -0300 Subject: [PATCH] Added required mutations on frontend --- .../useUpdateOnboardingStateMutation.ts | 44 +++++++++++++++++++ .../app/api/queries/useGetSettingsQuery.ts | 15 +++++++ 2 files changed, 59 insertions(+) create mode 100644 frontend/app/api/mutations/useUpdateOnboardingStateMutation.ts diff --git a/frontend/app/api/mutations/useUpdateOnboardingStateMutation.ts b/frontend/app/api/mutations/useUpdateOnboardingStateMutation.ts new file mode 100644 index 00000000..4a3b3a4b --- /dev/null +++ b/frontend/app/api/mutations/useUpdateOnboardingStateMutation.ts @@ -0,0 +1,44 @@ +import { useMutation, useQueryClient } from "@tanstack/react-query"; + +interface UpdateOnboardingStateVariables { + current_step?: number; + assistant_message?: { + role: string; + content: string; + timestamp: string; + } | null; + selected_nudge?: string | null; + card_steps?: Record | null; + upload_steps?: Record | null; + openrag_docs_filter_id?: string | null; + user_doc_filter_id?: string | null; +} + +export const useUpdateOnboardingStateMutation = () => { + const queryClient = useQueryClient(); + + return useMutation({ + mutationFn: async (variables: UpdateOnboardingStateVariables) => { + const response = await fetch("/api/onboarding/state", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify(variables), + }); + + if (!response.ok) { + const error = await response.json(); + throw new Error(error.error || "Failed to update onboarding state"); + } + + return response.json(); + }, + onSuccess: () => { + // Invalidate settings query to refetch updated onboarding state + queryClient.invalidateQueries({ queryKey: ["settings"] }); + }, + }); +}; + +// Made with Bob diff --git a/frontend/app/api/queries/useGetSettingsQuery.ts b/frontend/app/api/queries/useGetSettingsQuery.ts index c14c5140..5ee5e74c 100644 --- a/frontend/app/api/queries/useGetSettingsQuery.ts +++ b/frontend/app/api/queries/useGetSettingsQuery.ts @@ -41,12 +41,27 @@ export interface ProviderSettings { }; } +export interface OnboardingState { + current_step?: number; + assistant_message?: { + role: string; + content: string; + timestamp: string; + } | null; + selected_nudge?: string | null; + card_steps?: Record | null; + upload_steps?: Record | null; + openrag_docs_filter_id?: string | null; + user_doc_filter_id?: string | null; +} + export interface Settings { langflow_url?: string; flow_id?: string; ingest_flow_id?: string; langflow_public_url?: string; edited?: boolean; + onboarding?: OnboardingState; providers?: ProviderSettings; knowledge?: KnowledgeSettings; agent?: AgentSettings;