import { ProjectAi } from './project-ai' import { ProjectCron } from './project-cron' import { ProjectInbox } from './project-inbox' import { ProjectNewChannel } from './project-new-channel' import { ProjectNotes } from './project-notes' import { ProjectOverview } from './project-overview' import type { ProjectTaskUpdate } from './project-task-edit-modal' import { ProjectTasks } from './project-tasks' import type { ChannelKey, InboxConfirmationOutcome, ProjectWorkspace } from './project-types' import type { InboxSuggestionDTO } from '../../api/inbox' import type { AISessionDTO, CreateAISessionInput } from '../../api/ai' export function ProjectChannelPage({ activeChannel, activeWorkspace, activeTaskID, onSelectItem, onOpenTask, onCloseTask, onCreateTask, onUploadSource, onCreateCronPlan, onCreateProjectTag, onUpdateTask, onAnalyzeInbox, onConfirmInbox, onListAISessions, onCreateAISession, }: { activeChannel: ChannelKey activeWorkspace: ProjectWorkspace activeTaskID: string | null onSelectItem: (title: string) => void onOpenTask: (taskID: string) => void onCloseTask: () => void onCreateTask: () => void onUploadSource: () => void onCreateCronPlan: () => void onCreateProjectTag: (name: string) => void onUpdateTask: (update: ProjectTaskUpdate) => void onAnalyzeInbox: (inboxId: string) => Promise onConfirmInbox: (inboxId: string, suggestionIds: string[]) => Promise onListAISessions: (projectId: string) => Promise onCreateAISession: (projectId: string, input: CreateAISessionInput) => Promise }) { switch (activeChannel) { case 'inbox': return case 'tasks': return case 'ai': return case 'notes': return case 'cron': return case 'new-channel': return case 'overview': default: return } }