MCPcopy Create free account
hub / github.com/experdot/pointer / initializeTabTypes

Function initializeTabTypes

src/renderer/src/utils/tabTypeRegistrations.tsx:14–63  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

12import type { ExportEditorContext } from '../features/export/types'
13
14export function initializeTabTypes(): void {
15 // 注册 welcome 类型
16 registerTabType({
17 type: 'welcome',
18 icon: <HomeOutlined />,
19 renderEditor: () => (
20 <WelcomePage
21 onNewChat={async () => {
22 const page = await pagesService.createPage()
23 pagesService.openPage(page.id)
24 }}
25 onOpenSettings={() => openSettings()}
26 />
27 )
28 })
29
30 // 注册 chat 类型
31 registerTabType({
32 type: 'chat',
33 icon: <MessageOutlined />,
34 renderEditor: (tab) => <ChatEditor pageId={tab.dataId!} />,
35 validateData: (dataId) => usePagesStore.getState().pages.some((p) => p.id === dataId),
36 restoreTab: (dataId): Tab | null => {
37 const page = usePagesStore.getState().pages.find((p) => p.id === dataId)
38 if (!page) return null
39 return {
40 id: uuidv4(),
41 type: 'chat',
42 title: page.name,
43 dataId
44 }
45 }
46 })
47
48 // 注册 settings 类型
49 registerTabType({
50 type: 'settings',
51 icon: <SettingOutlined />,
52 renderEditor: () => <SettingsEditor />
53 })
54
55 // 注册 export 类型
56 registerTabType({
57 type: 'export',
58 icon: <ExportOutlined />,
59 renderEditor: (tab) => (
60 <ExportEditor context={(tab as Tab & { context?: ExportEditorContext }).context} />
61 )
62 })
63}

Callers 1

App.tsxFile · 0.90

Calls 2

registerTabTypeFunction · 0.90
openSettingsFunction · 0.90

Tested by

no test coverage detected