初始化工程
This commit is contained in:
58
src/store/userStore.ts
Normal file
58
src/store/userStore.ts
Normal file
@@ -0,0 +1,58 @@
|
||||
import { create } from 'zustand'
|
||||
|
||||
// 用户统计信息
|
||||
export interface UserStats {
|
||||
requestCount: number
|
||||
matchesCreated: number
|
||||
matchesJoined: number
|
||||
lastActiveTime: string
|
||||
}
|
||||
|
||||
// Store 状态接口
|
||||
interface UserState {
|
||||
userStats: UserStats
|
||||
incrementRequestCount: () => void
|
||||
resetUserStats: () => void
|
||||
}
|
||||
|
||||
// 创建适配 Zustand 4.x 的 store
|
||||
export const useUserStore = create<UserState>()((set) => ({
|
||||
// 初始状态
|
||||
userStats: {
|
||||
requestCount: 0,
|
||||
matchesCreated: 0,
|
||||
matchesJoined: 0,
|
||||
lastActiveTime: new Date().toISOString()
|
||||
},
|
||||
|
||||
// Actions
|
||||
incrementRequestCount: () => {
|
||||
console.log('store: incrementRequestCount 被调用')
|
||||
set((state) => ({
|
||||
userStats: {
|
||||
...state.userStats,
|
||||
requestCount: state.userStats.requestCount + 1,
|
||||
lastActiveTime: new Date().toISOString()
|
||||
}
|
||||
}))
|
||||
},
|
||||
|
||||
resetUserStats: () => {
|
||||
console.log('store: resetUserStats 被调用')
|
||||
set({
|
||||
userStats: {
|
||||
requestCount: 0,
|
||||
matchesCreated: 0,
|
||||
matchesJoined: 0,
|
||||
lastActiveTime: new Date().toISOString()
|
||||
}
|
||||
})
|
||||
}
|
||||
}))
|
||||
|
||||
// 简单的 hooks
|
||||
export const useUserStats = () => useUserStore((state) => state.userStats)
|
||||
export const useUserActions = () => useUserStore((state) => ({
|
||||
incrementRequestCount: state.incrementRequestCount,
|
||||
resetUserStats: state.resetUserStats
|
||||
}))
|
||||
Reference in New Issue
Block a user