refine(wallet): the balance readout scans as one column, not a barcode
Demo images / Build & push demo images (push) Failing after 2m7s
Demo images / Build & push demo images (push) Failing after 2m7s
Seeing it on the node settled the shape. Two rows of per-cell delays read as a dense flicker — closer to a progress bar than a display, and short enough against the row's text to look like an underline. Three rows laid out column-first fixes both: the three cells of a column now share a delay, so the lit column travels across as a single scan line, and at 11px the matrix sits with the text rather than under it. Verified in a real browser against the live node with the balance RPCs held open: five placeholders, five distinct rail colours (white, orange, yellow, purple, blue), 42 cells each, all animating, each announcing what it is waiting for — and no "0 sats" anywhere on screen while the calls were in flight. They gave way to real figures on arrival, with Lightning's genuine 0 correctly shown as a figure rather than left shimmering. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
fa6fe32ef9
commit
212e349b19
@@ -59,9 +59,17 @@ describe('BalanceAmount', () => {
|
||||
expect(w.html()).not.toMatch(/background:\s*#|rgb\(/)
|
||||
})
|
||||
|
||||
it('renders enough cells to read as a matrix', () => {
|
||||
it('renders a 14x3 matrix scanned column by column', () => {
|
||||
// Column-first layout is what makes the lit column travel across as one
|
||||
// scan line; per-cell delays would make it crawl diagonally instead.
|
||||
const w = mount(BalanceAmount, { props: { sats: null } })
|
||||
expect(w.findAll('.balance-pixel').length).toBe(28)
|
||||
const cells = w.findAll('.balance-pixel')
|
||||
expect(cells.length).toBe(42)
|
||||
// The three cells of a column share a delay; the next column steps on.
|
||||
const delay = (i: number) => cells[i]?.attributes('style') ?? ''
|
||||
expect(delay(0)).toBe(delay(1))
|
||||
expect(delay(1)).toBe(delay(2))
|
||||
expect(delay(3)).not.toBe(delay(2))
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user