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
+12 -4
View File
@@ -2,12 +2,20 @@ import { create } from "zustand"
interface LoginDialogState {
open: boolean
openLoginDialog: () => void
pendingAction: (() => void) | null
openLoginDialog: (action?: () => void) => void
closeLoginDialog: () => void
consumePendingAction: () => void
}
export const useLoginDialogStore = create<LoginDialogState>((set) => ({
export const useLoginDialogStore = create<LoginDialogState>((set, get) => ({
open: false,
openLoginDialog: () => set({ open: true }),
closeLoginDialog: () => set({ open: false }),
pendingAction: null,
openLoginDialog: (action) => set({ open: true, pendingAction: action ?? null }),
closeLoginDialog: () => set({ open: false, pendingAction: null }),
consumePendingAction: () => {
const action = get().pendingAction
set({ pendingAction: null })
action?.()
},
}))