feat(chat): change Enter key to approve actions instead of reject #10356
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Related GitHub Issue
Closes: #10350
Description
This PR attempts to address Issue #10350. Feedback and guidance are welcome.
Problem: When Roo shows action approval buttons (like Approve/Save/Run Command), pressing Enter with text would reject the action instead of approving it.
Solution: Added a new
onAcceptcallback prop toChatTextAreathat gets triggered when action buttons are visible. WhenonAcceptis provided, the Enter key handler uses it instead ofonSend.Behavior changes:
Implementation details:
onAccept?: () => voidprop toChatTextAreainterfacehandleKeyDownto useonAcceptwhen provided (via nullish coalescing:const actionHandler = onAccept ?? onSend)ChatView,onAcceptis conditionally set whenenableButtons && primaryButtonTextis truthy, callinghandlePrimaryButtonClickwith current input valuesTest Procedure
Manual testing:
Automated tests:
ChatTextArea.spec.tsx: 47 tests passedChatView.spec.tsx: 23 tests passedChatView.keyboard-fix.spec.tsx: 4 tests passedPre-Submission Checklist
Documentation Updates
Additional Notes
This is a UX improvement that aligns Enter key behavior with common expectations - Enter confirms/approves the current action.