- 文件转为 Client Component(line 1 加 'use client')
- 新增 import:useState/useEffect (react)、Dialog 子组件 5 个、KeyRound (lucide-react)、hasPermission (@/lib/permissions)
- 函数体顶部加 mounted 守卫 + isCredentialDialogOpen 两个 useState(复用 sidebar.tsx 同模式避免 SSR 水合警告)
- DashboardHeader children 改为 flex 容器,包含原「添加新模型」+ 新增「凭据槽位」(variant=outline)
- 凭据槽位 Button 由 mounted && hasPermission('credential-slot') 收敛,未授权角色 DOM 中完全不存在
- </Tabs> 之后插入 controlled mode 占位 Dialog,DialogTitle「通用凭据槽位」+ DialogDescription 提示由 Phase 3 落地
- Tabs / TabsContent / Card 等所有原有内容(line 18-441)逐字未动
Description
洛天依
Languages
TypeScript
57.8%
Python
40.3%
HTML
1.3%
CSS
0.3%
Dockerfile
0.1%
Other
0.1%