import { useEffect, useRef } from "react"; import { useTranslation } from "react-i18next"; import { Button } from "@/components/Button"; import FancyToggleSwitch from "@/components/FancyToggleSwitch"; import { HelpText } from "@/components/HelpText"; import { Input } from "@/components/Input"; import { Label } from "@/components/Label"; import { SectionGroup } from "@/modules/settings/SettingsSection.tsx"; import { useSettings } from "@/modules/settings/SettingsContext.tsx"; import { ManagementServerSwitch } from "@/modules/settings/ManagementServerSwitch.tsx"; import { ManagementMode, useManagementUrl } from "@/modules/settings/useManagementUrl.ts"; import { LanguagePicker } from "@/modules/settings/LanguagePicker.tsx"; export function SettingsGeneral() { const { t } = useTranslation(); const { config, setField } = useSettings(); const { mode, setMode, setUrl, displayUrl, showError, canSave, save } = useManagementUrl(); const inputRef = useRef(null); const prevMode = useRef(mode); useEffect(() => { if ( prevMode.current === ManagementMode.Cloud && mode === ManagementMode.SelfHosted ) { inputRef.current?.focus(); } prevMode.current = mode; }, [mode]); return ( <> setField("disableAutoConnect", !v)} label={t("settings.general.connectOnStartup.label")} helpText={t("settings.general.connectOnStartup.help")} /> setField("disableNotifications", !v)} label={t("settings.general.notifications.label")} helpText={t("settings.general.notifications.help")} />
{t("settings.general.management.help")}
{mode === ManagementMode.SelfHosted && (
setUrl(e.target.value)} placeholder={t("settings.general.management.urlPlaceholder")} error={ showError ? t("settings.general.management.urlError") : undefined } />
)}
); }