From b2df549066cfa10b27177aaa6721a4fbf0019826 Mon Sep 17 00:00:00 2001 From: jantunesmessias Date: Tue, 4 Feb 2025 10:48:37 -0300 Subject: [PATCH] finnish --- .../vehicle_history_screen.dart | 63 +++++++++++-------- .../vehicle_model.dart | 12 ++-- 2 files changed, 45 insertions(+), 30 deletions(-) diff --git a/lib/pages/vehicles_on_the_property/vehicle_history_screen.dart b/lib/pages/vehicles_on_the_property/vehicle_history_screen.dart index 5db71bf6..773c4756 100644 --- a/lib/pages/vehicles_on_the_property/vehicle_history_screen.dart +++ b/lib/pages/vehicles_on_the_property/vehicle_history_screen.dart @@ -77,34 +77,44 @@ class _VehicleHistoryScreenState extends State child: FutureBuilder( future: widget._future, builder: (context, snapshot) { - return ListView.builder( - shrinkWrap: true, - physics: const BouncingScrollPhysics(), - controller: _scrollController, - itemCount: widget._wrap.length + 1, - itemBuilder: (context, index) { - if (index == 0) { - return _buildHeader(context, limitedBodyTextSize); - } else { - Map item = widget._wrap[index - 1]; - return FutureBuilder( - future: _item(context, item), - builder: (context, snapshot) { - if (snapshot.connectionState == ConnectionState.done) { - return snapshot.data ?? Container(); - } else { - return Center(child: CircularProgressIndicator()); - } - }, - ); - } - }, - ); + if (snapshot.connectionState == ConnectionState.waiting) { + return Center(child: CircularProgressIndicator()); + } else if (snapshot.hasError) { + return Center(child: Text('Error: ${snapshot.error}')); + } else { + return ListView.builder( + shrinkWrap: true, + physics: const BouncingScrollPhysics(), + controller: _scrollController, + itemCount: widget._wrap.length + 1, + itemBuilder: (context, index) { + if (index == 0) { + return _buildHeader(context, limitedBodyTextSize); + } else { + Map item = widget._wrap[index - 1]; + return _buildVehicleItem(context, item); + } + }, + ); + } }, ), ); } + Widget _buildVehicleItem(BuildContext context, Map item) { + return FutureBuilder( + future: _item(context, item), + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.done) { + return snapshot.data ?? Container(); + } else { + return Center(child: CircularProgressIndicator()); + } + }, + ); + } + Widget _buildHeader(BuildContext context, double limitedBodyTextSize) { log('amountRegister: ${widget.model.amountRegister}'); return Padding( @@ -215,8 +225,11 @@ mixin _FetchingMixin on State { mixin _CardItemMixin on _FetchingMixin { Future _item(BuildContext context, Map uItem) async { final bool? isOwner = uItem['isOwnerVehicle']; - final IconData iconData = - isOwner == true ? Symbols.no_crash : Symbols.directions_car; + final IconData? iconData = isOwner == null + ? null + : isOwner == true + ? Symbols.no_crash + : Symbols.directions_car; final FreCardIcon? cardIcon = isOwner != null ? FreCardIcon( height: 50, diff --git a/lib/pages/vehicles_on_the_property/vehicle_model.dart b/lib/pages/vehicles_on_the_property/vehicle_model.dart index 0adfe490..800b8c4a 100644 --- a/lib/pages/vehicles_on_the_property/vehicle_model.dart +++ b/lib/pages/vehicles_on_the_property/vehicle_model.dart @@ -237,15 +237,19 @@ mixin _VehicleUpdateScreenModel on _BaseVehiclePage { /// [_VehicleHistoryScreenModel] is a mixin that contains the business logic of the vehicle history page. mixin _VehicleHistoryScreenModel on _BaseVehiclePage { - Future?> generateStatusColorMap( + Future?>? generateStatusColorMap( dynamic uItem, bool isDetail) async { final autoApproval = await StorageHelper().get(LocalsStorageKey.vehicleAutoApproval.key); if (autoApproval.toBoolean == true) return null; - final theme = FlutterFlowTheme.of(context); final localization = FFLocalizations.of(context); + final status = uItem['status']; + final isOwner = uItem['isOwnerVehicle']; + + if (isOwner == null && status == null) return null; + String byLanguage(String en, String pt) => localization.getVariableText(enText: en, ptText: pt); @@ -276,9 +280,6 @@ mixin _VehicleHistoryScreenModel on _BaseVehiclePage { }, }; - final status = uItem['status']; - final isOwner = uItem['isOwnerVehicle']; - if (vehicleStatusMap.containsKey(status)) { final statusMap = { vehicleStatusMap[status]!['text'] as String: @@ -311,6 +312,7 @@ mixin _VehicleHistoryScreenModel on _BaseVehiclePage { width: 1, ), ); + if (item['status'] == null) return []; final updateText = FFLocalizations.of(context) .getVariableText(ptText: 'Editar', enText: 'Edit');