Some checks failed
CI Check / check (push) Has been cancelled
- 创建统一UI三层架构系统(基础层、颜色层、组合层) - 拆分Admin页面为独立Tab组件(MonitorTab、UsersTab、DepartmentsTab等) - 提取公共逻辑到Hooks(useToast、useDataFetch、useUserOperations等) - 提取工具函数(validators、formatters、api等) - 创建统一弹窗组件(Modal)和useModal Hook - 添加错误边界和统一状态组件 - 完善类型定义和可访问性支持 - 更新文档(优化记录、优化计划、更新日志)
30 lines
555 B
TypeScript
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>>
|
|
|