@@ -121,15 +121,6 @@ class _ShopInBitTicketsViewState extends State<ShopInBitTicketsView> {
121121 final localIdx = _tickets.indexWhere ((t) => t.apiTicketId == ref.id);
122122 if (localIdx < 0 ) continue ;
123123
124- // Skip API calls for terminal tickets; they can still be
125- // refreshed on-demand when the user opens the detail view.
126- final localStatus = _tickets[localIdx].status;
127- if (localStatus == ShopInBitOrderStatus .closed ||
128- localStatus == ShopInBitOrderStatus .cancelled ||
129- localStatus == ShopInBitOrderStatus .refunded) {
130- continue ;
131- }
132-
133124 // Car research tickets return 403 on /tickets/:id/* endpoints.
134125 if (_tickets[localIdx].category == ShopInBitCategory .car) continue ;
135126
@@ -140,6 +131,18 @@ class _ShopInBitTicketsViewState extends State<ShopInBitTicketsView> {
140131 statusResp.value! .state,
141132 );
142133
134+ if (_tickets[localIdx].status == ShopInBitOrderStatus .offerAvailable &&
135+ (_tickets[localIdx].offerProductName == null ||
136+ _tickets[localIdx].offerPrice == null )) {
137+ final offerResp = await service.client.getTicketFull (ref.id);
138+ if (! offerResp.hasError && offerResp.value != null ) {
139+ _tickets[localIdx].setOffer (
140+ productName: offerResp.value! .productName,
141+ price: offerResp.value! .customerPrice,
142+ );
143+ }
144+ }
145+
143146 final msgsResp = await service.client.getMessages (ref.id);
144147 if (! msgsResp.hasError && msgsResp.value != null ) {
145148 _tickets[localIdx].clearMessages ();
0 commit comments