/** biome-ignore-all lint/correctness/useUniqueElementIds: component is only rendered once */ import { Trans, useLingui } from "@lingui/react/macro" import { LanguagesIcon, LoaderCircleIcon, SaveIcon } from "lucide-react" import { useState } from "react" import { Button } from "@/components/ui/button" import { Input } from "@/components/ui/input" import { Label } from "@/components/ui/label" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select" import { Separator } from "@/components/ui/separator" import { HourFormat, Unit } from "@/lib/enums" import { dynamicActivate } from "@/lib/i18n" import languages from "@/lib/languages" import { chartTimeData, currentHour12 } from "@/lib/utils" import type { UserSettings } from "@/types" import { saveSettings } from "./layout" export default function SettingsProfilePage({ userSettings }: { userSettings: UserSettings }) { const [isLoading, setIsLoading] = useState(false) const { i18n } = useLingui() async function handleSubmit(e: React.FormEvent) { e.preventDefault() setIsLoading(true) const formData = new FormData(e.target as HTMLFormElement) const data = Object.fromEntries(formData) as Partial await saveSettings(data) setIsLoading(false) } return (

General

Change general application options.

Language

Want to help improve our translations? Check{" "} Crowdin {" "} for details.

Chart options

Adjust display options for charts.

Unit preferences

Change display units for metrics.

Warning thresholds

Set percentage thresholds for meter colors.

) }