feat(admin): show email count and last-email date per feed

Surface each feed's email count on its Emails button and a "Last email …"
freshness line under the title, in both dashboard views. The values are
projected into feeds:list (kept to a single KV read) via the Feed aggregate,
so toListItemDTO now maps the whole aggregate through its intention-revealing
accessors instead of threading scalar projections. Also fixes long titles
overflowing into the Feed ID column in the table view.

Co-Authored-By: Claude Opus 4.7 <[email protected]>
This commit is contained in:
Julien HerrandClaude Opus 4.7 committed 2026-05-25 23:18:38 +02:00
1 parent e258206384
commit fd3ff8c40a
11 files changed
+273 -51

No files matched your search

+27
View File
@@ -77,6 +77,33 @@
gap: var(--spacing-sm);
}
/* Let the title/description text shrink so .truncate ellipsizes instead of
overflowing into the next column. Flex items default to min-width:auto. */
.feed-title-cell-text {
flex: 1;
min-width: 0;
}
/* "Last email …" freshness line under the feed title. */
.feed-activity {
display: block;
margin-top: 4px;
font-size: var(--font-size-sm);
}
/* Count badge inside the "Emails" button (always on the orange primary button,
incl. its faded disabled variant, so a light-on-dark badge fits both modes). */
.button-count {
display: inline-block;
margin-left: 6px;
padding: 0 6px;
border-radius: 999px;
background: rgba(255, 255, 255, 0.22);
font-size: var(--font-size-xs);
font-weight: var(--font-weight-semibold);
line-height: 1.5;
}
.feed-description {
font-size: var(--font-size-md);
color: var(--color-text-secondary);