diff --git a/src/app/(dashboard)/dashboard/settings/components/VisionBridgeSettingsTab.tsx b/src/app/(dashboard)/dashboard/settings/components/VisionBridgeSettingsTab.tsx deleted file mode 100644 index 2257b98a2f..0000000000 --- a/src/app/(dashboard)/dashboard/settings/components/VisionBridgeSettingsTab.tsx +++ /dev/null @@ -1,180 +0,0 @@ -"use client"; - -import { useEffect, useState } from "react"; -import { useTranslations } from "next-intl"; -import { Card, Toggle } from "@/shared/components"; -import { VISION_BRIDGE_DEFAULTS } from "@/shared/constants/visionBridgeDefaults"; - -type SettingsState = { - visionBridgeEnabled: boolean; - visionBridgeModel: string; - visionBridgePrompt: string; - visionBridgeTimeout: number; - visionBridgeMaxImages: number; -}; - -export default function VisionBridgeSettingsTab() { - const t = useTranslations("settings"); - const [settings, setSettings] = useState({ - visionBridgeEnabled: VISION_BRIDGE_DEFAULTS.enabled, - visionBridgeModel: VISION_BRIDGE_DEFAULTS.model, - visionBridgePrompt: VISION_BRIDGE_DEFAULTS.prompt, - visionBridgeTimeout: VISION_BRIDGE_DEFAULTS.timeoutMs, - visionBridgeMaxImages: VISION_BRIDGE_DEFAULTS.maxImagesPerRequest, - }); - const [loading, setLoading] = useState(true); - - useEffect(() => { - fetch("/api/settings") - .then((res) => (res.ok ? res.json() : null)) - .then((data) => { - if (!data) return; - setSettings({ - visionBridgeEnabled: data.visionBridgeEnabled ?? VISION_BRIDGE_DEFAULTS.enabled, - visionBridgeModel: data.visionBridgeModel ?? VISION_BRIDGE_DEFAULTS.model, - visionBridgePrompt: data.visionBridgePrompt ?? VISION_BRIDGE_DEFAULTS.prompt, - visionBridgeTimeout: data.visionBridgeTimeout ?? VISION_BRIDGE_DEFAULTS.timeoutMs, - visionBridgeMaxImages: - data.visionBridgeMaxImages ?? VISION_BRIDGE_DEFAULTS.maxImagesPerRequest, - }); - }) - .finally(() => setLoading(false)); - }, []); - - const updateSetting = async (patch: Partial) => { - try { - const res = await fetch("/api/settings", { - method: "PATCH", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify(patch), - }); - if (res.ok) { - setSettings((prev) => ({ ...prev, ...patch })); - } - } catch (error) { - console.error("Failed to update Vision Bridge settings:", error); - } - }; - - return ( - -
-
- -
-
-

{t("visionBridge")}

-

{t("visionBridgeDesc")}

-
-
- -
-
-
-

{t("visionBridgeEnabledLabel")}

-

{t("visionBridgeEnabledDesc")}

-
- updateSetting({ visionBridgeEnabled: checked })} - disabled={loading} - /> -
- -
-
- - - setSettings((prev) => ({ ...prev, visionBridgeModel: e.target.value })) - } - onBlur={() => updateSetting({ visionBridgeModel: settings.visionBridgeModel.trim() })} - className="w-full rounded-lg border border-border bg-surface px-3 py-2 text-sm" - placeholder={t("visionBridgeModelPlaceholder")} - /> -

{t("visionBridgeModelHint")}

-
- -
- -