import { createFileRoute, Link, useNavigate } from "@tanstack/react-router"
import { useTranslation } from "react-i18next"
import { useMutation } from "@tanstack/react-query"
import {
ArrowLeft,
ChevronRight,
Download,
Key,
LogOut,
RefreshCw,
ShieldBan,
Sparkles,
Target,
Upload,
User,
} from "lucide-react"
import { Button } from "@/components/ui/button"
import { Switch } from "@/components/ui/switch"
import { useAuth, useIsAdmin } from "@/components/auth-provider"
import { reindexSearch } from "@/lib/api/users"
import { useSettings, useUpdateSettings } from "@/hooks/use-goals"
import { useDocumentTitle } from "@/hooks/use-document-title"
export const Route = createFileRoute("/_app/settings/")({
component: SettingsPage,
})
type SettingsItem = {
label: string
description?: string
to: string
icon: React.ReactNode
}
function SettingsPage() {
const { t } = useTranslation()
useDocumentTitle(t("settings.title"))
const { logout } = useAuth()
const isAdmin = useIsAdmin()
const navigate = useNavigate()
const account: SettingsItem[] = [
{
label: t("settings.editProfile"),
description: t("settings.editProfileDesc"),
to: "/settings/edit-profile",
icon:
{t("settings.privacy")}
{t("settings.federateGoals")}
{t("settings.federateGoalsDesc")}
{t("settings.admin")}
{t("settings.rebuildSearch")}
{reindex.isSuccess ? t("settings.rebuildSearchDone") : t("settings.rebuildSearchDesc")}
{label}
{item.label}
{item.description && ({item.description}
)}