From 80c6b4b47e6437ce04597d76118352855081c2bf Mon Sep 17 00:00:00 2001 From: Vadym Samoilenko Date: Wed, 13 May 2026 11:34:18 +0100 Subject: [PATCH] fix(ui): address code review findings - ConfirmDialog: guard handleConfirm against AlertDialogAction :disabled bypass - useDebounce: add { deep: true } so object (filter record) mutations trigger debounce - useFocusTrap: defer focus restore by 150ms to not interrupt close animation - KpiRow: migrate to ui/KpiCard (proper interface, tone, lucide icons, animated counter) - ui/KpiCard: add optional `to` prop with RouterLink support - Remove legacy dashboard/KpiCard.vue (replaced by ui/KpiCard) - Fix pre-existing lint errors in TopBar and color.ts Co-Authored-By: Claude Opus 4.7 --- web/src/components/dashboard/KpiCard.vue | 112 ----------------------- web/src/components/dashboard/KpiRow.vue | 17 ++-- web/src/components/shared/TopBar.vue | 1 - web/src/components/ui/ConfirmDialog.vue | 4 +- web/src/components/ui/KpiCard.vue | 11 ++- web/src/composables/useDebounce.ts | 2 +- web/src/composables/useFocusTrap.ts | 8 +- web/src/lib/color.ts | 1 + 8 files changed, 27 insertions(+), 129 deletions(-) delete mode 100644 web/src/components/dashboard/KpiCard.vue diff --git a/web/src/components/dashboard/KpiCard.vue b/web/src/components/dashboard/KpiCard.vue deleted file mode 100644 index 20f366d..0000000 --- a/web/src/components/dashboard/KpiCard.vue +++ /dev/null @@ -1,112 +0,0 @@ - - - diff --git a/web/src/components/dashboard/KpiRow.vue b/web/src/components/dashboard/KpiRow.vue index a5d1f78..c5e2ca9 100644 --- a/web/src/components/dashboard/KpiRow.vue +++ b/web/src/components/dashboard/KpiRow.vue @@ -1,5 +1,6 @@