Refactor chat empty states to sub-components
What does this MR do and why?
Summary
Refactored the duo_agentic_chat.vue component to extract two empty state UI sections into dedicated render-only micro components for better maintainability and separation of concerns.
What does this MR do?
- Extracts the "no namespace selected" state
- Extracts the "no credits remaining" state
- Both components are render-only with no internal logic - they receive props and emit events
- Adds snapshot tests for rendering and event tests for user interactions
Why?
Maintainability. We have more empty states coming, and having them all in line in the chat component is not sustainable.
References
Screenshots or screen recordings
| no default namespace | no credits |
|---|---|
![]() |
![]() |
no visual change
How to set up and validate locally
- Visit chat with no default namespace selected or apply this patch.
- Visit chat with no credits or apply this patch.
- Do not apply both patches at the same time.
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Edited by Tomas Bulva

