"use client"; import { useMemo, useState } from "react"; import { useTrack } from "@/hooks/use-track"; import { TRACKING_EVENTS } from "@/lib/tracking-events"; import { useAuth } from "@/components/auth-provider"; export function UnlockWorkflow() { const [code, setCode] = useState(""); const [step, setStep] = useState<"idle" | "checking" | "valid" | "invalid">("idle"); const { track } = useTrack(); const { setAccessLevel } = useAuth(); const hint = useMemo(() => { if (step === "checking") return "正在校验解锁码..."; if (step === "valid") return "验证成功,已解锁高级下载入口(模拟)。"; if (step === "invalid") return "解锁码无效,请关注公众号回复“下载”获取。"; return "输入公众号返回的解锁码,体验后端接入前的完整交互流程。"; }, [step]); const verify = () => { setStep("checking"); track(TRACKING_EVENTS.unlockSubmit, { codeLength: code.length }); setTimeout(() => { const pass = code.trim().toUpperCase() === "DOWNLOAD2026"; setStep(pass ? "valid" : "invalid"); track(TRACKING_EVENTS.unlockResult, { success: pass }); if (pass) setAccessLevel("unlocked"); }, 600); }; return (

解锁码验证(前端状态机)

setCode(e.target.value)} />

{hint}

); }