fix: replay pending action after login

This commit is contained in:
zetaloop
2026-02-22 06:36:49 +08:00
parent c04a1d5b71
commit 4ce7303258
4 changed files with 17 additions and 6 deletions
+1 -1
View File
@@ -32,7 +32,7 @@ export function AuthGuard({ children }: AuthGuardProps) {
return (
<div className="flex min-h-[50vh] flex-col items-center justify-center gap-4 text-center">
<p className="text-sm text-muted-foreground">访</p>
<Button onClick={openLoginDialog}></Button>
<Button onClick={() => openLoginDialog()}></Button>
</div>
)
}
+3
View File
@@ -16,6 +16,7 @@ import { Input } from "@/components/ui/input"
import { Label } from "@/components/ui/label"
import { currentUser } from "@/lib/mock"
import { useAuthStore } from "@/store/auth"
import { useLoginDialogStore } from "@/store/login-dialog"
const loginSchema = z.object({
phone: z.string().min(11, "请输入正确的手机号"),
@@ -30,6 +31,7 @@ interface LoginDialogProps {
export function LoginDialog({ open, onOpenChange }: LoginDialogProps) {
const router = useRouter()
const { login } = useAuthStore()
const consumePendingAction = useLoginDialogStore((state) => state.consumePendingAction)
const {
register,
handleSubmit,
@@ -41,6 +43,7 @@ export function LoginDialog({ open, onOpenChange }: LoginDialogProps) {
const onSubmit = async (_data: z.infer<typeof loginSchema>) => {
await new Promise((r) => setTimeout(r, 500))
login(currentUser, ["consumer", "player", "owner"])
consumePendingAction()
onOpenChange(false)
}