feat(ui): improve suggestion handling and input clearing

Enhanced suggestion handling to include empty state in message selection and improved UX by:
- Clearing input field after selecting a suggestion
- Adding selected suggestion as user message to chat
- Maintaining all existing functionality while simplifying the flow

Changes ensure more intuitive user interaction with suggestions while keeping the chat interface clean.
This commit is contained in:
Rodrigo Rodriguez (Pragmatismo) 2025-11-02 10:51:42 -03:00
parent 888bfc859d
commit 9010396a87

View file

@ -880,8 +880,8 @@
</div> </div>
<script> <script>
function handleSuggestions(suggestions) { function handleSuggestions(suggestions) {
// Find the last assistant message content div // Find all assistant message content divs (including empty state)
const messageContents = document.querySelectorAll('.assistant-message-content'); const messageContents = document.querySelectorAll('.assistant-message-content, #emptyState');
if (messageContents.length === 0) return; if (messageContents.length === 0) return;
const lastContent = messageContents[messageContents.length - 1]; const lastContent = messageContents[messageContents.length - 1];
@ -921,7 +921,10 @@
btn.style.transform = 'scale(1)'; btn.style.transform = 'scale(1)';
btn.style.boxShadow = 'none'; btn.style.boxShadow = 'none';
}; };
btn.onclick = () => setContext(s.context); btn.onclick = () => {
setContext(s.context);
input.value = ''; // Clear input after clicking
};
container.appendChild(btn); container.appendChild(btn);
}); });
} }
@ -933,10 +936,13 @@
// Get the button text from the clicked suggestion // Get the button text from the clicked suggestion
const buttonText = event?.target?.textContent || context; const buttonText = event?.target?.textContent || context;
// Set the input field value to the button text // Add the suggestion as a user message to the chat
addMessage("user", buttonText);
// Clear the input field
const input = document.getElementById('messageInput'); const input = document.getElementById('messageInput');
if (input) { if (input) {
input.value = buttonText; input.value = '';
} }
if (ws && ws.readyState === WebSocket.OPEN) { if (ws && ws.readyState === WebSocket.OPEN) {