feat(ui): render the Recent imagery readout as components

createRecentImageryPanel() computes the readout from the layer snapshot
and renders RecentImageryReadout and its day cards synchronously; its
delegated listeners stay on the stable root and the mode buttons keep their
segmented control. Rail card actions take optional pressed and reserved
states, replacing the owner's patches after render. Thumbnails, focus,
scroll preservation, the DETAILS reveal and export behave as before, and
nothing paints after teardown.
This commit is contained in:
Sameh Khamis committed 2026-10-30 18:58:32 -07:00
1 parent a318376203
commit e949584c0a
7 files changed
+425 -398

No files matched your search

+9
View File
@@ -985,6 +985,15 @@ test('opacity drives both images; EXPORT downloads the pin or the preview and EX
failing.byId('ri-notice-text').textContent,
'Export failed · HTTP 503',
);
// A retained export after teardown neither fetches nor mounts again.
const fetched = f.fetches.length;
const container = f
.byId('ri-strip')
.closest('.recent-imagery-readout').parentElement;
f.readout.destroy();
assert.equal(await f.readout.exportImage('a'), false);
assert.equal(f.fetches.length, fetched);
assert.equal(container.querySelector('.recent-imagery-readout'), null);
});
test('DETAILS is a collapsed rail card holding every note, and the empty-days toggle', async () => {