| import { useMutation, useQueryClient } from "@tanstack/react-query"; | |
| import { ApiSettings, DEFAULT_SETTINGS, Settings } from "#/services/settings"; | |
| import OpenHands from "#/api/open-hands"; | |
| const saveSettingsMutationFn = async (settings: Partial<Settings>) => { | |
| const apiSettings: Partial<ApiSettings> = { | |
| llm_model: settings.LLM_MODEL, | |
| llm_base_url: settings.LLM_BASE_URL, | |
| agent: settings.AGENT || DEFAULT_SETTINGS.AGENT, | |
| language: settings.LANGUAGE || DEFAULT_SETTINGS.LANGUAGE, | |
| confirmation_mode: settings.CONFIRMATION_MODE, | |
| security_analyzer: settings.SECURITY_ANALYZER, | |
| llm_api_key: settings.LLM_API_KEY?.trim() || undefined, | |
| }; | |
| await OpenHands.saveSettings(apiSettings); | |
| }; | |
| export const useSaveSettings = () => { | |
| const queryClient = useQueryClient(); | |
| return useMutation({ | |
| mutationFn: saveSettingsMutationFn, | |
| onSuccess: async () => { | |
| await queryClient.invalidateQueries({ queryKey: ["settings"] }); | |
| }, | |
| }); | |
| }; | |