import { useEffect, useRef } from "react"; 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"; export function SettingsGeneral() { 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={"Connect on Startup"} helpText={"Automatically establish a connection when the service starts."} /> setField("disableNotifications", !v)} label={"Desktop Notifications"} helpText={"Show desktop notifications for new updates and connection events."} />
Connect to NetBird Cloud or your own self-hosted management server. Changes will reconnect the client.
{mode === ManagementMode.SelfHosted && (
setUrl(e.target.value)} placeholder={"https://netbird.selfhosted.com:443"} error={ showError ? "Please enter a valid URL, e.g., https://netbird.selfhosted.com:443" : undefined } />
)}
); }