import { Trans } from "@lingui/react/macro"; import { Button } from "@rakazo/ui-web"; import { Suspense, useEffect, useState } from "react"; import { desktopBridge } from "../lib/desktop"; import { lazyWithRecovery } from "../lib/lazy-recovery"; import { rpc } from "../lib/rpc"; const IntegrationSetup = lazyWithRecovery("integrations/IntegrationSetup", () => import("../components/integrations/IntegrationSetup").then((module) => ({ default: module.IntegrationSetup, })), ); const ModelSettingsOverlay = lazyWithRecovery("pages/ModelSettingsOverlay", () => import("./ModelSettingsOverlay").then((module) => ({ default: module.ModelSettingsOverlay })), ); export function LocalSettingsPage() { const [section, setSection] = useState<"models" | "integrations" | null>(null); const hasLocalBridge = Boolean(desktopBridge()?.localSettings); const [ready, setReady] = useState(false); const [error, setError] = useState(!hasLocalBridge); useEffect(() => { if (!hasLocalBridge) return; void rpc.integrationSetup .get() .then(() => setReady(true)) .catch(() => setError(true)); }, [hasLocalBridge]); return (

Local Server Settings

{error ? (

Could not open local settings. Start the local server and create its owner account, then try again.

) : null} {ready ? ( <> {section === "models" ? ( setSection(null)} localOwner /> ) : null} {section === "integrations" ? ( ) : null} ) : null}
); }