From 73e4c56a9e61f64e54f02cef6d61f57f9da733e8 Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Thu, 28 May 2026 00:54:51 +0200 Subject: [PATCH] feat(dashboard): verbatim modal + defect feed on /defects (T8) --- app/components/DefectFeed.vue | 47 ++++++++++++++ app/components/DotMap.vue | 6 +- app/components/VerbatimModal.vue | 103 ++++++++++++++++++++++++++++++ app/pages/defects.vue | 13 +++- app/utils/datestamp.ts | 11 ++++ tasks/todo.md | 2 +- tests/defect-feed.nuxt.spec.ts | 51 +++++++++++++++ tests/dotmap.nuxt.spec.ts | 12 ++++ tests/verbatim-modal.nuxt.spec.ts | 75 ++++++++++++++++++++++ 9 files changed, 316 insertions(+), 4 deletions(-) create mode 100644 app/components/DefectFeed.vue create mode 100644 app/components/VerbatimModal.vue create mode 100644 app/utils/datestamp.ts create mode 100644 tests/defect-feed.nuxt.spec.ts create mode 100644 tests/verbatim-modal.nuxt.spec.ts diff --git a/app/components/DefectFeed.vue b/app/components/DefectFeed.vue new file mode 100644 index 0000000..4107fac --- /dev/null +++ b/app/components/DefectFeed.vue @@ -0,0 +1,47 @@ + + + diff --git a/app/components/DotMap.vue b/app/components/DotMap.vue index a6cd438..2c58e95 100644 --- a/app/components/DotMap.vue +++ b/app/components/DotMap.vue @@ -19,6 +19,10 @@ const props = defineProps<{ cap?: number }>() +// Forward a Section click up so the page can open that section's verbatim modal +// (T8); BoardView owns the click, DotMap just relays the id. +defineEmits<{ select: [sectionId: string] }>() + const cap = computed(() => props.cap ?? 10) // Group the feed by section, preserving its newest-first order. @@ -56,7 +60,7 @@ function dotStyle(index: number) {