This commit is contained in:
jantunesmessias 2025-02-04 10:48:37 -03:00
parent 2e22045eea
commit b2df549066
2 changed files with 45 additions and 30 deletions

View File

@ -77,34 +77,44 @@ class _VehicleHistoryScreenState extends State<VehicleHistoryScreen>
child: FutureBuilder<void>(
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<String, dynamic> item = widget._wrap[index - 1];
return FutureBuilder<Widget>(
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<String, dynamic> item = widget._wrap[index - 1];
return _buildVehicleItem(context, item);
}
},
);
}
},
),
);
}
Widget _buildVehicleItem(BuildContext context, Map<String, dynamic> item) {
return FutureBuilder<Widget>(
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<VehicleHistoryScreen> {
mixin _CardItemMixin on _FetchingMixin {
Future<Widget> _item(BuildContext context, Map<String, dynamic> 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,

View File

@ -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<Map<String, Color>?> generateStatusColorMap(
Future<Map<String, Color>?>? 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');