import { useEffect } from "react" import { useNavigate } from "react-router-dom" import { toast } from "sonner" import { useDashboardStore } from "@/components/stores/dashboard" import { useProfileStore } from "@/components/stores/profile" // ==================== 前台购买/支付页面实名检查 ==================== // 已登录但未实名的用户访问购买/支付页面时:提示并跳转个人中心完成实名认证。 // 未登录用户不拦截(下单时走登录流程)。参考 juipnet 老项目做法。 export default function RealNameCheck() { const navigate = useNavigate() const token = useProfileStore(state => state.token) const verified = useDashboardStore(state => state.verified) const data = useDashboardStore(state => state.data) const refresh = useDashboardStore(state => state.refresh) // 无缓存时先拉取实名状态 useEffect(() => { if (token && !data) refresh() }, [token, data, refresh]) useEffect(() => { if (!token || verified !== false) return toast.error( "接主管部门要求,会员需要实名认证方可使用该产品,请先前往个人中心完成实名认证", ) navigate("/admin", { replace: true }) }, [token, verified, navigate]) return null }