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 { CaptureInboxInput, InboxSuggestionDTO } from '../../api/inbox' import type { AISessionDTO, CreateAISessionInput } from '../../api/ai' import { Card, Empty, Typography } from '@arco-design/web-react' const { Text } = Typography export function ProjectChannelPage({ activeChannel, activeWorkspace, activeTaskID, onSelectItem, onOpenTask, onCloseTask, onCreateTask, onUploadSource, onCreateCronPlan, onCreateProjectTag, onUpdateTask, onAnalyzeInbox, onCaptureInbox, 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) => Promise onUpdateTask: (update: ProjectTaskUpdate) => Promise onAnalyzeInbox: (inboxId: string) => Promise onCaptureInbox: (projectId: string, input: CaptureInboxInput) => Promise onConfirmInbox: (inboxId: string, suggestionIds: string[]) => Promise onListAISessions: (projectId: string, signal?: AbortSignal) => Promise onCreateAISession: (projectId: string, input: CreateAISessionInput, signal?: AbortSignal) => Promise }) { if (activeChannel.startsWith('custom:')) { return (
MVP 当前只展示频道配置,不会跳转或模拟外部功能。
) } 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 } }