Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | import { AiHydroMessage } from "@shared/ExtensionMessage"
import React from "react"
import TaskHeader from "@/components/chat/task-header/TaskHeader"
import { MessageHandlers, ScrollBehavior } from "../../types/chatTypes"
interface TaskSectionProps {
task: AiHydroMessage
apiMetrics: {
totalTokensIn: number
totalTokensOut: number
totalCacheWrites?: number
totalCacheReads?: number
totalCost: number
}
lastApiReqTotalTokens?: number
selectedModelInfo: {
supportsPromptCache: boolean
supportsImages: boolean
}
messageHandlers: MessageHandlers
scrollBehavior: ScrollBehavior
lastProgressMessageText?: string
}
/**
* Task section shown when there's an active task
* Includes the task header and manages task-specific UI
*/
export const TaskSection: React.FC<TaskSectionProps> = ({
task,
apiMetrics,
lastApiReqTotalTokens,
selectedModelInfo,
messageHandlers,
scrollBehavior,
lastProgressMessageText,
}) => {
return (
<TaskHeader
cacheReads={apiMetrics.totalCacheReads}
cacheWrites={apiMetrics.totalCacheWrites}
doesModelSupportPromptCache={selectedModelInfo.supportsPromptCache}
lastApiReqTotalTokens={lastApiReqTotalTokens}
lastProgressMessageText={lastProgressMessageText}
onClose={messageHandlers.handleTaskCloseButtonClick}
onScrollToMessage={scrollBehavior.scrollToMessage}
onSendMessage={messageHandlers.handleSendMessage}
task={task}
tokensIn={apiMetrics.totalTokensIn}
tokensOut={apiMetrics.totalTokensOut}
totalCost={apiMetrics.totalCost}
/>
)
}
|