| 1 | import type { RemoteTabRefView } from "../lib/types"; |
| 2 | import type { ShortcutPlatform } from "../lib/keyboardShortcuts"; |
| 3 | import type { TopicShortcutEntry } from "../lib/topicShortcuts"; |
| 4 | import type { ProjectTreeVariant } from "../lib/projectTreeTopic"; |
| 5 | |
| 6 | type ProjectTreeImTopicSource = { |
| 7 | platform?: string; |
| 8 | label: string; |
| 9 | title?: string; |
| 10 | remoteId?: string; |
| 11 | }; |
| 12 | |
| 13 | export interface ProjectTreeProps { |
| 14 | activeScope?: string; |
| 15 | activeWorkspaceRoot?: string; |
| 16 | activeTopicId?: string; |
| 17 | activeSessionPath?: string; |
| 18 | activeRemote?: RemoteTabRefView; |
| 19 | imTopicSources?: Record<string, ProjectTreeImTopicSource>; |
| 20 | variant?: ProjectTreeVariant; |
| 21 | onOpenTopic: (scope: string, workspaceRoot: string, topicId: string, sessionPath?: string) => Promise<void> | void; |
| 22 | onAddProject: (path?: string) => Promise<void>; |
| 23 | onCreateTopic?: (scope: string, workspaceRoot: string) => Promise<void> | void; |
| 24 | onCreateIsolatedWorktree?: (workspaceRoot: string) => Promise<void> | void; |
| 25 | onRenameTopic?: (topicId: string, title: string) => Promise<void> | void; |
| 26 | onTopicsChanged?: () => Promise<void> | void; |
| 27 | refreshSignal?: number; |
| 28 | searchExpanded?: boolean; |
| 29 | searchFocusSignal?: number; |
| 30 | showShortcutBadges?: boolean; |
| 31 | shortcutPlatform?: ShortcutPlatform; |
| 32 | onVisibleTopicsChange?: (topics: TopicShortcutEntry[]) => void; |
| 33 | } |
| 34 |