01a033b5 - Buy CTA: quote max amount and thousands grouping - #936
Conversation
|
EN: DE: DetailsReview passes: 1 (quality + logic both clean on first pass). No open review threads. Mergeable: MERGEABLE against staging. Commit |
689b398 to
cdb0171
Compare
|
EN: DE: DetailsReview passes until 0 findings:
Open comments: none. Review threads: none. Inline review comments: none. An earlier status comment on this PR is superseded by this one. Mergeable: |
|
EN: DE: DetailsReview: quality and logic reported 0 findings after the screenshot fix, except one logic note that Open review threads: none. Mergeable against |
Map AmountTooHigh and LimitExceeded (isValid false plus maxVolume) to a typed max-amount failure. Show a disabled Next button and the API cap instead of Retry, which previously re-quoted the same over-limit amount.
CHF and EUR have at most two decimal places, so a separator plus three digits is a thousands group. Rejecting it left the buy CTA as a Retry that never quoted the intended amount.
A leading-zero integer part is fractional digits, not 105 francs.
Mirrors buy_min_amount_not_met so Visual Regression has a baseline for the disabled Next + maximum-amount hint. PNGs come from golden-regenerate.
Stripping ' first turned 0'105 into 105 and 1'23 into 123. Apostrophes are now accepted only as thousands marks (90'000), then parsed.
90000.6 is 90000 only with floor(); round and ceil would show 90001.
The thousands-group parser rejected `-100`, which broke the sell cubit contract that still forwards a negative to the service (the UI already blocks typing it). Integer and 1-2 decimal branches accept an optional minus again; grouped thousands do not.
The over-inventory state adds a hint above a disabled Next. Gate that column against RenderFlex overflow on the full device × text-scale matrix; the button stays untappable by design.
BuyView copies fiat/shares into the fields only when converter loading flips false. Goldens that stubbed cubit state without that transition rendered empty inputs while showing min/max/error CTAs. Drive the same loading settle as the live quote so the pictures match the real screen.
d1cf9bf to
3517c04
Compare
|
EN: DE: DetailsQuality/logic reported 0 findings except two quality notes, both declined:
Rebased onto current |
EN:
Buying a large CHF amount no longer dies on Retry. The app now shows the quote cap when the order is above inventory, and it reads 105.000 / 90'000 as one hundred five thousand / ninety thousand instead of rejecting the input.
DE:
Ein grosser CHF-Betrag stirbt nicht mehr am Retry. Die App zeigt die Quote-Obergrenze, wenn der Auftrag über dem Bestand liegt, und liest 105.000 / 90'000 als einhundertfünftausend / neunzigtausend statt die Eingabe zu verwerfen.
Details
Two buy-CTA failures:
AmountTooHigh/LimitExceededwithmaxVolumeused to map to unknown + Retry, which re-quoted the same over-limit amount.105.000/90,000/90'000are thousands groups. The parser treated them as invalid (or, on the raw quote API,105.000is 105 francs). The field now accepts the apostrophe and the parser keeps the thousands.Screenshots of min/max and other quote outcomes now show the typed amount in the fields, as on the live screen. The max-amount hint still appears only after an over-inventory quote.