zaps: fix badge never showing (array pointers) + zap total in the player modal

The zap-totals store's pointerKey only understood {type,value} objects, but
deriveVideoPointerInfo produces tag-style ARRAYS (["a", value, relay?]) — so
every card-badge lookup keyed to nothing, no receipt fetch was ever
scheduled, and the Most Zapped ranking metric silently read 0 for every
video. pointerKey now normalizes both shapes; tests use the array shape the
app actually passes.

Also adds the orange sats badge to the video player modal's meta row
(right side via the row's existing justify-between; views stay left),
driven by the same cache/change-signal as the cards and torn down with the
view-count subscription.

Co-Authored-By: Claude Fable 5 <[email protected]>
This commit is contained in:
thePR0M3TH3ANandClaude Fable 5 committed 2026-07-04 09:20:11 -04:00
1 parent ad62205afd
commit cbe894969d
7 files changed
+106 -5

No files matched your search

+7
View File
@@ -2916,6 +2916,13 @@
font-variant-numeric: tabular-nums;
}
/* Same treatment in the player modal: orange sats on the far side of the
meta row (the row is justify-between, views stay left). */
.video-modal__zaps {
color: var(--color-zap);
font-variant-numeric: tabular-nums;
}
/* #43: always-visible active-identity pill. Rendered after the header in
flow and pulled up with a negative block-start margin so it sits half-on /
half-off the header divider — every pane shows who you're acting as. */