Invoice and trade screens overflow at 320 dp with 2× text in German
I maintainer di solito rispondono entro 1 giorno
@pgauravparashar ci sta già lavorando.
Dal 7/10/2026.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 68/100
Direzione di ricerca
Start with the named widgets in lib/features/order/widgets/invoice_widgets.dart and lib/features/trades/widgets/trade_step_block.dart, then read the 320 dp, 2× German test pattern in trade_detail_screen_test.dart. Add coverage for the listed invoice, time-up and trade states; re-measure InvoiceTimeUpView on the bond screens. Done when each case fits without overflow and tester.takeException() is null.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
What happens
At 320 dp wide, with text scaled to 2× and the app in German — the combination .specify/DESIGN_SYSTEM.md asks every screen to hold up in (DS-SPC-5, DS-L10N-2, DS-A11Y-4) — the buyer's invoice screen, the seller's hold-invoice screen, the bond time-up view and the trade screen overflow. Users with large text on a narrow phone get clipped content and, in debug builds, the overflow stripes.
Measured on main (7a8f7075)
Widget tests mounting each screen with Locale('de'), a 320 × 800 view and TextScaler.linear(2); each overflow reported with the widget that caused it:
| Screen | State | Overflow | Widget |
|---|---|---|---|
Buyer's invoice (/add_invoice) |
waiting for the invoice | 103 px right | hero amount row — InvoiceHeroCard, lib/features/order/widgets/invoice_widgets.dart:205 |
Seller's hold invoice (/pay_invoice) |
QR shown | 178 px right | hero amount row — same InvoiceHeroCard row |
| Seller's hold invoice | QR shown | 25 px right | label → value row — InvoiceCounterpartCard, invoice_widgets.dart:607 |
InvoiceTimeUpView |
time up | 208–284 px bottom | its Column, invoice_widgets.dart:736 |
Trade screen (/trade_detail) |
waiting step, active, fiat sent | 27 px right | step block header row — lib/features/trades/widgets/trade_step_block.dart:81 |
InvoiceTimeUpView was measured on the invoice screens, which showed it at 00:00 until #710; after #710 only the bond screens use it, so it should be re-measured there.
Likely causes
- The hero amount is a 38-pt figure plus
satsin aRowthat cannot shrink or wrap; at 2× it is wider than the screen even for small amounts. InvoiceCounterpartCardputs the label, the value and the reputation on one row; the value hasExpanded+ ellipsis, but the label and the trailing reputation do not give way.InvoiceTimeUpViewlays its content between twoSpacers in aColumnwith no scroll, so at 2× it does not fit the height.- The step block header puts the step label and the status chip side by side with nothing allowed to wrap.
Expected
Each screen holds up at 320 dp, 2× text, German, with a widget test that proves it (tester.takeException() is null), as DS-A11Y-4 requires. The fix should keep the regular layout unchanged: the hero amount scaling down (e.g. FittedBox) rather than wrapping, rows letting their secondary piece shrink or wrap, and the time-up view scrolling. trade_detail_screen_test.dart has the pattern since #710 (the id row case: 320 dp, textScaleFactorTestValue = 2.0, German, scrolled into view).
- The step block header puts the step label and the status chip swed to wrap.
Context
Found while reviewing #710 (the countdown change for #569), where the review bots asked for this coverage. These overflows are the same before and after #710, which does not touch these widgets. #710 fixed the one it did touch — the trade screen's order-id row (16 px without the creation date, about 618 px with it) — and covers it with a test; the rest is tracked here.
- Lingua principale
- Dart
- Stelle
- 11
- Fork
- 9
- Merge medio
- 14h 3m
- PR unite (30g)
- 135
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di MostroP2P/app
-
area: rust-core bug priority: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno
-
area: ui
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
area: ui feature priority: medium
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
MostroP2P/app#124 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di MostroP2P/app
Issue simili
-
documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
patarapolw/lingua_srs#103 ·
I maintainer di solito rispondono entro 1 giorno
-
[Feature]Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 5 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
desktop linux photos
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
lichess-org/mobile#3944 ·
I maintainer di solito rispondono entro 2 giorni