"use client"; import { useState } from "react"; import { Bug, Loader2 } from "lucide-react"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Switch } from "@/components/ui/switch"; import { useTranslations } from "@/lib/i18n/context"; import { PasswordInput, useAdminSettings, useUpdateSettings } from "./_shared"; export function BugReportSection({ id }: { id: string }) { const { t } = useTranslations(); const { data: settings } = useAdminSettings(); const updateSettings = useUpdateSettings(); const [bugReportRepoDraft, setBugReportRepoDraft] = useState( null, ); const [bugReportTokenDraft, setBugReportTokenDraft] = useState(""); const bugReportRepoValue = bugReportRepoDraft ?? settings?.bugReportRepo ?? ""; const configured = settings?.bugReportConfigured ?? false; const enabled = settings?.bugReportEnabled ?? true; function saveBugReportSettings() { const payload: Record = { bugReportRepo: bugReportRepoValue, }; if (bugReportTokenDraft.trim().length > 0) { payload.bugReportToken = bugReportTokenDraft.trim(); } updateSettings.mutate(payload, { onSuccess: () => { setBugReportRepoDraft(null); setBugReportTokenDraft(""); }, }); } function toggleEnabled(next: boolean) { updateSettings.mutate({ bugReportEnabled: next }); } return (

{t("admin.bugReportGithub")}

{configured && ( {t("admin.configured")} )}

{t("admin.bugReportGithubDescription")}

{t("admin.bugReportEnabledLabel")}

{t("admin.bugReportEnabledDescription")}

setBugReportRepoDraft(event.target.value)} placeholder={t("admin.bugReportRepoPlaceholder")} autoComplete="off" data-lpignore="true" data-1p-ignore="true" disabled={updateSettings.isPending} />
setBugReportTokenDraft(event.target.value)} placeholder={t("admin.bugReportTokenPlaceholder")} disabled={updateSettings.isPending} />
); }