Hair Keeper v1.0.0:一个高度集成、深度定制、约定优于配置的全栈Web应用模板,旨在保持灵活性的同时提供一套基于成熟架构的开发底座,自带身份认证、权限控制、丰富前端组件、文件上传、后台任务、智能体开发等丰富功能,提供AI开发辅助,免于纠结功能如何实现,可快速上手专注于业务逻辑

This commit is contained in:
2025-11-13 15:24:54 +08:00
commit 42be39b343
249 changed files with 38843 additions and 0 deletions

View File

@@ -0,0 +1,59 @@
'use client'
import * as React from 'react'
/**
* DevPanel Context 类型定义
*/
interface DevPanelContextType {
terminalLoaded: boolean
setTerminalLoaded: (loaded: boolean) => void
}
/**
* DevPanel Context
*/
const DevPanelContext = React.createContext<DevPanelContextType | undefined>(
undefined
)
/**
* DevPanel Provider Props
*/
interface DevPanelProviderProps {
children: React.ReactNode
}
/**
* DevPanel Provider
* 管理开发面板的全局状态,包括终端加载状态等
*/
export function DevPanelProvider({ children }: DevPanelProviderProps) {
const [terminalLoaded, setTerminalLoaded] = React.useState(false)
const value = React.useMemo(
() => ({
terminalLoaded,
setTerminalLoaded,
}),
[terminalLoaded]
)
return (
<DevPanelContext.Provider value={value}>
{children}
</DevPanelContext.Provider>
)
}
/**
* 使用 DevPanel Context 的 Hook
* @throws {Error} 如果在 DevPanelProvider 外部使用
*/
export function useDevPanel() {
const context = React.useContext(DevPanelContext)
if (context === undefined) {
throw new Error('useDevPanel must be used within a DevPanelProvider')
}
return context
}