"use client"; import { useActionState } from "react"; import { RefreshCw } from "lucide-react"; import { submitGarminMfaCode, syncGarminActivities, type SyncGarminState } from "@/app/running/actions"; export function SyncButton() { const [state, formAction, pending] = useActionState(async () => syncGarminActivities(), null); const [mfaState, mfaAction, mfaPending] = useActionState( async (_prev: SyncGarminState, formData: FormData) => submitGarminMfaCode(String(formData.get("code") ?? "")), null ); const mfaRequired = (state && "mfaRequired" in state) || (mfaState && "mfaRequired" in mfaState); const activeState = mfaState ?? state; return (
{mfaRequired ? (
) : null} {mfaRequired ? (
Garmin wysłał kod weryfikacyjny na e-mail. Wpisz go powyżej.
) : null} {activeState && "error" in activeState ?
{activeState.error}
: null} {activeState && "success" in activeState ?
{activeState.success}
: null}
); }