Adjust AgentInput controls for send-only state
This commit is contained in:
@@ -242,7 +242,7 @@ export function AgentInputArea({ agentId }: AgentInputAreaProps) {
|
|||||||
const hasImages = selectedImages.length > 0;
|
const hasImages = selectedImages.length > 0;
|
||||||
const hasSendableContent = hasText || hasImages;
|
const hasSendableContent = hasText || hasImages;
|
||||||
const shouldShowSendButton = !isAgentRunning && hasSendableContent;
|
const shouldShowSendButton = !isAgentRunning && hasSendableContent;
|
||||||
const shouldShowDictateButton = !isAgentRunning && !hasSendableContent;
|
const shouldShowVoiceControls = !isAgentRunning && !hasSendableContent;
|
||||||
|
|
||||||
const overlayAnimatedStyle = useAnimatedStyle(() => {
|
const overlayAnimatedStyle = useAnimatedStyle(() => {
|
||||||
return {
|
return {
|
||||||
@@ -388,20 +388,17 @@ export function AgentInputArea({ agentId }: AgentInputAreaProps) {
|
|||||||
</Pressable>
|
</Pressable>
|
||||||
</>
|
</>
|
||||||
) : shouldShowSendButton ? (
|
) : shouldShowSendButton ? (
|
||||||
<>
|
<Pressable
|
||||||
<Pressable
|
onPress={handleSendMessage}
|
||||||
onPress={handleSendMessage}
|
disabled={!ws.isConnected || isProcessing}
|
||||||
disabled={!ws.isConnected || isProcessing}
|
style={[
|
||||||
style={[
|
styles.sendButton,
|
||||||
styles.sendButton,
|
(!ws.isConnected || isProcessing) && styles.buttonDisabled,
|
||||||
(!ws.isConnected || isProcessing) && styles.buttonDisabled,
|
]}
|
||||||
]}
|
>
|
||||||
>
|
<ArrowUp size={20} color="white" />
|
||||||
<ArrowUp size={20} color="white" />
|
</Pressable>
|
||||||
</Pressable>
|
) : shouldShowVoiceControls ? (
|
||||||
{realtimeButton}
|
|
||||||
</>
|
|
||||||
) : shouldShowDictateButton ? (
|
|
||||||
<>
|
<>
|
||||||
<Pressable
|
<Pressable
|
||||||
onPress={handleVoicePress}
|
onPress={handleVoicePress}
|
||||||
|
|||||||
@@ -78,5 +78,6 @@
|
|||||||
- Stream reducer now inspects Codex `provider_event` payloads and converts command/file/MCP/web search items into agent tool entries immediately, so the UI shows the pills while the turn is running instead of waiting for hydration; `stream.test.ts` gained coverage proving provider events alone still surface command + MCP calls, and `npm run test --workspace=@voice-dev/app -- src/types/stream.test.ts` passes.
|
- Stream reducer now inspects Codex `provider_event` payloads and converts command/file/MCP/web search items into agent tool entries immediately, so the UI shows the pills while the turn is running instead of waiting for hydration; `stream.test.ts` gained coverage proving provider events alone still surface command + MCP calls, and `npm run test --workspace=@voice-dev/app -- src/types/stream.test.ts` passes.
|
||||||
- [x] Update the AgentInput “Cancel” control to use a square stop icon button (consistent with media players) so interrupting an agent is visually distinct from other actions.
|
- [x] Update the AgentInput “Cancel” control to use a square stop icon button (consistent with media players) so interrupting an agent is visually distinct from other actions.
|
||||||
- Replaced the text-based pill with a compact circular stop control that reuses the Square media glyph (plus accessibility labels), making the interrupt action visually distinct without impacting the other pending AgentInput tweaks.
|
- Replaced the text-based pill with a compact circular stop control that reuses the Square media glyph (plus accessibility labels), making the interrupt action visually distinct without impacting the other pending AgentInput tweaks.
|
||||||
- [ ] When the agent input has text and we’re not in the cancellable state, replace both the mic (Dictate) and Realtime buttons with a single Send button—only surface Dictate/Realtime when the input is empty or the agent is running.
|
- [x] When the agent input has text and we’re not in the cancellable state, replace both the mic (Dictate) and Realtime buttons with a single Send button—only surface Dictate/Realtime when the input is empty or the agent is running.
|
||||||
|
- `packages/app/src/components/agent-input-area.tsx` now shows a lone Send control when text/images are queued while keeping Dictate + Realtime visible only when the input is empty or the agent is actively running.
|
||||||
- [ ] Remove the agent status pill next to the permission selector; instead show a “working” indicator inside the chat scroll view itself (three bouncing dots animation) whenever the agent is busy.
|
- [ ] Remove the agent status pill next to the permission selector; instead show a “working” indicator inside the chat scroll view itself (three bouncing dots animation) whenever the agent is busy.
|
||||||
|
|||||||
Reference in New Issue
Block a user