fix(web): close final workbench interaction gaps
This commit is contained in:
@@ -7,8 +7,11 @@ 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 { 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,
|
||||
@@ -23,6 +26,7 @@ export function ProjectChannelPage({
|
||||
onCreateProjectTag,
|
||||
onUpdateTask,
|
||||
onAnalyzeInbox,
|
||||
onCaptureInbox,
|
||||
onConfirmInbox,
|
||||
onListAISessions,
|
||||
onCreateAISession,
|
||||
@@ -36,16 +40,28 @@ export function ProjectChannelPage({
|
||||
onCreateTask: () => void
|
||||
onUploadSource: () => void
|
||||
onCreateCronPlan: () => void
|
||||
onCreateProjectTag: (name: string) => void
|
||||
onUpdateTask: (update: ProjectTaskUpdate) => void
|
||||
onCreateProjectTag: (name: string) => Promise<void>
|
||||
onUpdateTask: (update: ProjectTaskUpdate) => Promise<void>
|
||||
onAnalyzeInbox: (inboxId: string) => Promise<InboxSuggestionDTO[]>
|
||||
onCaptureInbox: (projectId: string, input: CaptureInboxInput) => Promise<string>
|
||||
onConfirmInbox: (inboxId: string, suggestionIds: string[]) => Promise<InboxConfirmationOutcome>
|
||||
onListAISessions: (projectId: string, signal?: AbortSignal) => Promise<AISessionDTO[]>
|
||||
onCreateAISession: (projectId: string, input: CreateAISessionInput, signal?: AbortSignal) => Promise<AISessionDTO>
|
||||
}) {
|
||||
if (activeChannel.startsWith('custom:')) {
|
||||
return (
|
||||
<div className="project-channel-page project-unavailable-page overview-page">
|
||||
<Card className="queue-section" bordered>
|
||||
<Empty description="自定义链接频道暂未开放" />
|
||||
<Text type="secondary">MVP 当前只展示频道配置,不会跳转或模拟外部功能。</Text>
|
||||
</Card>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
switch (activeChannel) {
|
||||
case 'inbox':
|
||||
return <ProjectInbox key={activeWorkspace.project.id} activeWorkspace={activeWorkspace} onAnalyze={onAnalyzeInbox} onConfirm={onConfirmInbox} />
|
||||
return <ProjectInbox key={activeWorkspace.project.id} activeWorkspace={activeWorkspace} onCapture={onCaptureInbox} onAnalyze={onAnalyzeInbox} onConfirm={onConfirmInbox} />
|
||||
case 'tasks':
|
||||
return <ProjectTasks activeWorkspace={activeWorkspace} activeTaskID={activeTaskID} onOpenTask={onOpenTask} onCloseTask={onCloseTask} onSelectItem={onSelectItem} onCreateTask={onCreateTask} onCreateProjectTag={onCreateProjectTag} onUpdateTask={onUpdateTask} />
|
||||
case 'ai':
|
||||
|
||||
Reference in New Issue
Block a user