import { createFileRoute, Link } from "@tanstack/react-router"; import { changePassword } from "~/fns/account"; import { getSecuritySettings } from "~/fns/account-security"; import { getAccountDataSettings } from "~/fns/account-data"; import { AvatarPanel } from "~/components/settings/AvatarPanel"; import { EmailPanel } from "~/components/settings/EmailPanel"; import { RenamePanel } from "~/components/settings/RenamePanel"; import { AnalyticsPanel } from "~/components/settings/AnalyticsPanel"; import { DeleteAccountPanel } from "~/components/settings/DeleteAccountPanel"; import { ExportDataPanel } from "~/components/settings/ExportDataPanel"; import { useAction } from "~/hooks/use-action"; import { useViewer } from "~/hooks/use-viewer"; import { Button, buttonClass } from "~/ui/Button"; import { TextField } from "~/ui/Field"; import { ErrorBanner } from "~/ui/Callout"; import { Panel } from "~/ui/Panel"; import { TextLink } from "~/ui/TextLink"; export const Route = createFileRoute("/settings/")({ loader: async () => { const [security, data] = await Promise.all([getSecuritySettings(), getAccountDataSettings()]); return { security, data }; }, component: AccountSettings, }); function AccountSettings() { const viewer = useViewer(); const { security, data } = Route.useLoaderData(); const action = useAction(changePassword, { invalidate: false }); if (!viewer) return null; return (
Signed in as {viewer.name} ({viewer.email}) Edit public profile
{ event.preventDefault(); const formElement = event.currentTarget; const form = new FormData(formElement); const result = await action.run({ data: { current: String(form.get("current") ?? ""), next: String(form.get("next") ?? "") }, }); if (result) formElement.reset(); }} >

Use your username and a personal access token as the password when cloning or pushing.

            git config --global credential.helper store
          
); }