From 04973094f2ecca15e2df86b448ff7a45c0b3460b Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 19 Aug 2025 13:46:13 +0300 Subject: [PATCH] feat(react/settings): port LLM settings --- .../src/translations/en/translation.json | 7 +- .../client/src/widgets/react/FormTextArea.tsx | 15 + .../widgets/type_widgets/content_widget.tsx | 4 +- .../type_widgets/options/ai_settings.ts | 2 - .../type_widgets/options/ai_settings.tsx | 238 ++++++++++++ .../options/ai_settings/ai_settings_widget.ts | 362 ------------------ .../type_widgets/options/ai_settings/index.ts | 2 - .../options/ai_settings/interfaces.ts | 31 -- .../options/ai_settings/providers.ts | 252 ------------ .../options/ai_settings/template.ts | 135 ------- packages/commons/src/lib/server_api.ts | 23 ++ 11 files changed, 284 insertions(+), 787 deletions(-) create mode 100644 apps/client/src/widgets/react/FormTextArea.tsx delete mode 100644 apps/client/src/widgets/type_widgets/options/ai_settings.ts create mode 100644 apps/client/src/widgets/type_widgets/options/ai_settings.tsx delete mode 100644 apps/client/src/widgets/type_widgets/options/ai_settings/ai_settings_widget.ts delete mode 100644 apps/client/src/widgets/type_widgets/options/ai_settings/index.ts delete mode 100644 apps/client/src/widgets/type_widgets/options/ai_settings/interfaces.ts delete mode 100644 apps/client/src/widgets/type_widgets/options/ai_settings/providers.ts delete mode 100644 apps/client/src/widgets/type_widgets/options/ai_settings/template.ts diff --git a/apps/client/src/translations/en/translation.json b/apps/client/src/translations/en/translation.json index bab013849..2fd7c9099 100644 --- a/apps/client/src/translations/en/translation.json +++ b/apps/client/src/translations/en/translation.json @@ -1253,7 +1253,12 @@ "selected_provider": "Selected Provider", "selected_provider_description": "Choose the AI provider for chat and completion features", "select_model": "Select model...", - "select_provider": "Select provider..." + "select_provider": "Select provider...", + "ai_enabled": "AI features enabled", + "ai_disabled": "AI features disabled", + "no_models_found_online": "No models found. Please check your API key and settings.", + "no_models_found_ollama": "No Ollama models found. Please check if Ollama is running.", + "error_fetching": "Error fetching models: {{error}}" }, "zoom_factor": { "title": "Zoom Factor (desktop build only)", diff --git a/apps/client/src/widgets/react/FormTextArea.tsx b/apps/client/src/widgets/react/FormTextArea.tsx new file mode 100644 index 000000000..b6a0fb0f7 --- /dev/null +++ b/apps/client/src/widgets/react/FormTextArea.tsx @@ -0,0 +1,15 @@ +interface FormTextAreaProps { + currentValue: string; + onBlur?(newValue: string): void; + rows: number; +} +export default function FormTextArea({ onBlur, rows, currentValue }: FormTextAreaProps) { + return ( + + ) +} diff --git a/apps/client/src/widgets/type_widgets/content_widget.tsx b/apps/client/src/widgets/type_widgets/content_widget.tsx index 95c08747f..be803018f 100644 --- a/apps/client/src/widgets/type_widgets/content_widget.tsx +++ b/apps/client/src/widgets/type_widgets/content_widget.tsx @@ -1,5 +1,4 @@ import TypeWidget from "./type_widget.js"; -import AiSettingsOptions from "./options/ai_settings.js"; import type FNote from "../../entities/fnote.js"; import type NoteContextAwareWidget from "../note_context_aware_widget.js"; import { t } from "../../services/i18n.js"; @@ -21,6 +20,7 @@ import CodeNoteSettings from "./options/code_notes.jsx"; import OtherSettings from "./options/other.jsx"; import BackendLogWidget from "./content/backend_log.js"; import MultiFactorAuthenticationSettings from "./options/multi_factor_authentication.js"; +import AiSettings from "./options/ai_settings.jsx"; const TPL = /*html*/`