flnxi-Wu/app/admin/_hooks/useModalState.ts
WuYongJie e4dcb6260a
Some checks failed
CI Check / check (push) Has been cancelled
feat: Admin页面重构 & UI三层架构系统
- 创建统一UI三层架构系统(基础层、颜色层、组合层)
- 拆分Admin页面为独立Tab组件(MonitorTab、UsersTab、DepartmentsTab等)
- 提取公共逻辑到Hooks(useToast、useDataFetch、useUserOperations等)
- 提取工具函数(validators、formatters、api等)
- 创建统一弹窗组件(Modal)和useModal Hook
- 添加错误边界和统一状态组件
- 完善类型定义和可访问性支持
- 更新文档(优化记录、优化计划、更新日志)
2025-11-22 15:17:10 +08:00

30 lines
555 B
TypeScript

'use client'
import { useCallback, useState } from 'react'
export function useModalState<T = void>() {
const [isOpen, setIsOpen] = useState(false)
const [data, setData] = useState<T | null>(null)
const open = useCallback((payload?: T) => {
setData((payload ?? null) as T | null)
setIsOpen(true)
}, [])
const close = useCallback(() => {
setIsOpen(false)
setData(null)
}, [])
return {
isOpen,
data,
open,
close,
setData,
}
}
export type UseModalStateReturn<T> = ReturnType<typeof useModalState<T>>