Spaces:
Build error
Build error
| import { useSelector } from "react-redux"; | |
| import { useTranslation } from "react-i18next"; | |
| import { I18nKey } from "#/i18n/declaration"; | |
| import PauseIcon from "#/assets/pause"; | |
| import PlayIcon from "#/assets/play"; | |
| import { generateAgentStateChangeEvent } from "#/services/agent-state-service"; | |
| import { RootState } from "#/store"; | |
| import { AgentState } from "#/types/agent-state"; | |
| import { useWsClient } from "#/context/ws-client-provider"; | |
| import { IGNORE_TASK_STATE_MAP } from "#/ignore-task-state-map.constant"; | |
| import { ActionButton } from "#/components/shared/buttons/action-button"; | |
| export function AgentControlBar() { | |
| const { t } = useTranslation(); | |
| const { send } = useWsClient(); | |
| const { curAgentState } = useSelector((state: RootState) => state.agent); | |
| const handleAction = (action: AgentState) => { | |
| if (!IGNORE_TASK_STATE_MAP[action].includes(curAgentState)) { | |
| send(generateAgentStateChangeEvent(action)); | |
| } | |
| }; | |
| return ( | |
| <div className="flex justify-between items-center gap-20"> | |
| <ActionButton | |
| isDisabled={ | |
| curAgentState !== AgentState.RUNNING && | |
| curAgentState !== AgentState.PAUSED | |
| } | |
| content={ | |
| curAgentState === AgentState.PAUSED | |
| ? t(I18nKey.AGENT$RESUME_TASK) | |
| : t(I18nKey.AGENT$PAUSE_TASK) | |
| } | |
| action={ | |
| curAgentState === AgentState.PAUSED | |
| ? AgentState.RUNNING | |
| : AgentState.PAUSED | |
| } | |
| handleAction={handleAction} | |
| > | |
| {curAgentState === AgentState.PAUSED ? <PlayIcon /> : <PauseIcon />} | |
| </ActionButton> | |
| </div> | |
| ); | |
| } | |