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
Screenshot_2026-01-21_at_18.21.16 Screenshot_2026-01-21_at_18.23.07

no visual change

How to set up and validate locally

  1. Visit chat with no default namespace selected or apply this patch.
  2. Visit chat with no credits or apply this patch.
  3. 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

Merge request reports

Loading