Merge remote-tracking branch 'origin/design_3.0_task_module_new_merge' into design_3.0_task_module_new_merge

design_3.0_TM_Module_snagsFix
WaseemAbbasi22 2 months ago
commit b45035a35f

@ -23,10 +23,10 @@ import 'package:test_sa/new_views/swipe_module/dialoge/acknowledge_work_dialog.d
import 'package:test_sa/providers/service_request_providers/reject_reason_provider.dart'; import 'package:test_sa/providers/service_request_providers/reject_reason_provider.dart';
class FooterActionButton { class FooterActionButton {
static Widget footerContainer({required Widget child,required BuildContext context}) { static Widget footerContainer({required Widget child, required BuildContext context}) {
return Container( return Container(
alignment: Alignment.bottomCenter, alignment: Alignment.bottomCenter,
padding: const EdgeInsets.only(left: 16, right: 16, top: 12,bottom: 8), padding: const EdgeInsets.only(left: 16, right: 16, top: 12, bottom: 8),
color: AppColor.background(context), color: AppColor.background(context),
child: SafeArea(child: child), child: SafeArea(child: child),
); );
@ -49,16 +49,16 @@ class FooterActionButton {
switch (workOrderNextStepStatus) { switch (workOrderNextStepStatus) {
case WorkOrderNextStepEnum.assignToMe: case WorkOrderNextStepEnum.assignToMe:
return footerContainer( return footerContainer(
context: context, context: context,
child: AppFilledButton( child: AppFilledButton(
label: 'Assign To Me', label: 'Assign To Me',
// maxWidth: true, // maxWidth: true,
buttonColor: AppColor.primary10, buttonColor: AppColor.primary10,
onPressed: () async { onPressed: () async {
requestDetailProvider.engineerAssignWorkOrderToHimself(id: requestDetailProvider.currentWorkOrder!.data!.requestId.toString()); requestDetailProvider.engineerAssignWorkOrderToHimself(id: requestDetailProvider.currentWorkOrder!.data!.requestId.toString());
}, },
fontSize: 12.toScreenWidth, fontSize: 12.toScreenWidth,
)); ));
case WorkOrderNextStepEnum.markedAsFixed: case WorkOrderNextStepEnum.markedAsFixed:
break; break;
// TODO: Handle this case. // TODO: Handle this case.
@ -79,20 +79,20 @@ class FooterActionButton {
return footerContainer( return footerContainer(
context: context, context: context,
child: AppFilledButton( child: AppFilledButton(
label: context.translation.close, label: context.translation.close,
// maxWidth: true, // maxWidth: true,
buttonColor: AppColor.primary10, buttonColor: AppColor.primary10,
onPressed: () async { onPressed: () async {
Navigator.pop(context); Navigator.pop(context);
}, },
)); ));
case WorkOrderNextStepEnum.nTakeAction: case WorkOrderNextStepEnum.nTakeAction:
if (requestDetailProvider.isReadOnlyRequest) { if (requestDetailProvider.isReadOnlyRequest) {
return footerContainer( return footerContainer(
context: context, context: context,
child: AppFilledButton( child: AppFilledButton(
label: context.translation.activities, label: context.translation.activities,
buttonColor: context.isDark? AppColor.primary10:AppColor.neutral50, buttonColor: context.isDark ? AppColor.primary10 : AppColor.neutral50,
textColor: context.isDark ? AppColor.black10 : Colors.white, textColor: context.isDark ? AppColor.black10 : Colors.white,
onPressed: () async { onPressed: () async {
Navigator.push(context, MaterialPageRoute(builder: (context) => const ActivitiesListView())); Navigator.push(context, MaterialPageRoute(builder: (context) => const ActivitiesListView()));
@ -103,148 +103,148 @@ class FooterActionButton {
return footerContainer( return footerContainer(
context: context, context: context,
child: AppFilledButton( child: AppFilledButton(
label: context.translation.close, label: context.translation.close,
// maxWidth: true, // maxWidth: true,
buttonColor: AppColor.primary10, buttonColor: AppColor.primary10,
onPressed: () async { onPressed: () async {
Navigator.pop(context); Navigator.pop(context);
}, },
)); ));
case WorkOrderNextStepEnum.eRejectAccept: case WorkOrderNextStepEnum.eRejectAccept:
return footerContainer( return footerContainer(
context: context, context: context,
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
AppFilledButton( AppFilledButton(
label: context.translation.reject, label: context.translation.reject,
maxWidth: true, maxWidth: true,
buttonColor:AppColor.background(context), buttonColor: AppColor.background(context),
// textColor: context.isDark ? AppColor.neutral30 : Colors.white, // textColor: context.isDark ? AppColor.neutral30 : Colors.white,
textColor: AppColor.red30, textColor: AppColor.red30,
showBorder: true, showBorder: true,
onPressed: () async { onPressed: () async {
//TODO need to discuss getData is not called by default... //TODO need to discuss getData is not called by default...
if (context.mounted) { if (context.mounted) {
RejectReasonProvider rejectionReasonProvider = Provider.of<RejectReasonProvider>(context, listen: false); RejectReasonProvider rejectionReasonProvider = Provider.of<RejectReasonProvider>(context, listen: false);
rejectionReasonProvider.reset(); rejectionReasonProvider.reset();
//rejectionReasonProvider.getDate(); //rejectionReasonProvider.getDate();
} }
ServiceRequestBottomSheet.rejectRequestBottomSheet(context: context); ServiceRequestBottomSheet.rejectRequestBottomSheet(context: context);
}, },
).expanded, ).expanded,
const SizedBox( const SizedBox(
width: 20, width: 20,
), ),
AppFilledButton( AppFilledButton(
label: context.translation.accept, label: context.translation.accept,
maxWidth: true, maxWidth: true,
buttonColor: AppColor.green70, buttonColor: AppColor.green70,
onPressed: () async { onPressed: () async {
requestDetailProvider.engineerAcceptWorkOrder(id: requestDetailProvider.currentWorkOrder!.data!.requestId.toString()); requestDetailProvider.engineerAcceptWorkOrder(id: requestDetailProvider.currentWorkOrder!.data!.requestId.toString());
}, },
).expanded, ).expanded,
], ],
)); ));
case WorkOrderNextStepEnum.eFixRemotelyNeedVisit: case WorkOrderNextStepEnum.eFixRemotelyNeedVisit:
return footerContainer( return footerContainer(
context: context, context: context,
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
AppFilledButton( AppFilledButton(
label: context.translation.needAVisit, label: context.translation.needAVisit,
maxWidth: true, maxWidth: true,
buttonColor: AppColor.neutral50, buttonColor: AppColor.neutral50,
onPressed: () async { onPressed: () async {
requestDetailProvider.needVisitHelperModel = NeedVisitHelperModel(); requestDetailProvider.needVisitHelperModel = NeedVisitHelperModel();
ServiceRequestBottomSheet.initialVisitBottomSheet(context: context); ServiceRequestBottomSheet.initialVisitBottomSheet(context: context);
}, },
).expanded, ).expanded,
const SizedBox( const SizedBox(
width: 20, width: 20,
), ),
AppFilledButton( AppFilledButton(
label: context.translation.fixedRemotely, label: context.translation.fixedRemotely,
maxWidth: true, maxWidth: true,
buttonColor: AppColor.green70, buttonColor: AppColor.green70,
onPressed: () async { onPressed: () async {
requestDetailProvider.fixRemotelyHelperModel = FixRemotelyHelperModel(); requestDetailProvider.fixRemotelyHelperModel = FixRemotelyHelperModel();
ServiceRequestBottomSheet.fixRemotelyBottomSheet(context: context); ServiceRequestBottomSheet.fixRemotelyBottomSheet(context: context);
}, },
).expanded, ).expanded,
], ],
)); ));
case WorkOrderNextStepEnum.eArrived: case WorkOrderNextStepEnum.eArrived:
return footerContainer( return footerContainer(
context: context, context: context,
child: AppFilledButton( child: AppFilledButton(
label: context.translation.iHaveArrived, label: context.translation.iHaveArrived,
showIcon: true, showIcon: true,
icon: 'arrived_icon'.toSvgAsset(), icon: 'arrived_icon'.toSvgAsset(),
buttonColor: AppColor.green70, buttonColor: AppColor.green70,
onPressed: () async { onPressed: () async {
Navigator.push(context, MaterialPageRoute(builder: (context) => const VerifyArrivalView())); Navigator.push(context, MaterialPageRoute(builder: (context) => const VerifyArrivalView()));
}, },
)); ));
case WorkOrderNextStepEnum.verifyAssetDetail: case WorkOrderNextStepEnum.verifyAssetDetail:
return footerContainer( return footerContainer(
context: context, context: context,
child: AppFilledButton( child: AppFilledButton(
label: context.translation.updateAssetDetails, label: context.translation.updateAssetDetails,
// maxWidth: true, // maxWidth: true,
buttonColor: AppColor.primary10, buttonColor: AppColor.primary10,
onPressed: () async { onPressed: () async {
Navigator.push(context, MaterialPageRoute(builder: (context) => VerifyAssetDetails(isEdit: false))); Navigator.push(context, MaterialPageRoute(builder: (context) => VerifyAssetDetails(isEdit: false)));
}, },
)); ));
case WorkOrderNextStepEnum.activity: case WorkOrderNextStepEnum.activity:
return footerContainer( return footerContainer(
context: context, context: context,
child: Column( child: Column(
children: [ children: [
AppFilledButton( AppFilledButton(
label: context.translation.activities, label: context.translation.activities,
textColor: context.isDark ? AppColor.black10 : Colors.white, textColor: context.isDark ? AppColor.black10 : Colors.white,
buttonColor: context.isDark? AppColor.primary10:AppColor.neutral50, buttonColor: context.isDark ? AppColor.primary10 : AppColor.neutral50,
onPressed: () async { onPressed: () async {
// ServiceRequestBottomSheet.activityTypeBottomSheet(context: context); // ServiceRequestBottomSheet.activityTypeBottomSheet(context: context);
Navigator.push(context, MaterialPageRoute(builder: (context) => const ActivitiesListView())); Navigator.push(context, MaterialPageRoute(builder: (context) => const ActivitiesListView()));
}, },
), ),
if (showMarkAsFixedButton) ...[ if (showMarkAsFixedButton) ...[
8.height, 8.height,
AppFilledButton( AppFilledButton(
label: context.translation.markAsCompleted, label: context.translation.markAsCompleted,
// maxWidth: true, // maxWidth: true,
buttonColor: AppColor.green70, buttonColor: AppColor.green70,
onPressed: () { onPressed: () {
bool isValid = ServiceRequestBottomSheet.validateAssetSituation(Provider.of<ServiceRequestDetailProvider>(context, listen: false)); bool isValid = ServiceRequestBottomSheet.validateAssetSituation(Provider.of<ServiceRequestDetailProvider>(context, listen: false));
if (isValid) { if (isValid) {
showDialog( showDialog(
context: context, context: context,
builder: (BuildContext cxt) => AcknowledgeWorkDialog( builder: (BuildContext cxt) => AcknowledgeWorkDialog(
message: "Are you sure you want to mark this Work Order as complete ", message: "Are you sure you want to mark this Work Order as complete ",
confirmButtonText: 'Complete', confirmButtonText: 'Complete',
cancelButtonText: 'Cancel', cancelButtonText: 'Cancel',
onSave: () async { onSave: () async {
int status = await requestDetailProvider.engineerMarkAsFixed(workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!, feedback: ''); int status = await requestDetailProvider.engineerMarkAsFixed(workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!, feedback: '');
if (status != -1) { if (status != -1) {
Navigator.of(cxt).pop(); Navigator.of(cxt).pop();
} }
}, },
onDiscard: () {}, onDiscard: () {},
), ),
); );
} }
// ServiceRequestBottomSheet.feedBackBottomSheet(context: context); // ServiceRequestBottomSheet.feedBackBottomSheet(context: context);
}, },
), ),
] ]
], ],
)); ));
case WorkOrderNextStepEnum.endWorkFlow: case WorkOrderNextStepEnum.endWorkFlow:
return const SizedBox(); return const SizedBox();
@ -252,60 +252,60 @@ class FooterActionButton {
return footerContainer( return footerContainer(
context: context, context: context,
child: AppFilledButton( child: AppFilledButton(
label: context.translation.assetRetiredPendingOpManagementApproval, label: context.translation.assetRetiredPendingOpManagementApproval,
buttonColor: AppColor.background(context), buttonColor: AppColor.background(context),
textColor: context.isDark ? Colors.white: AppColor.neutral150, textColor: context.isDark ? Colors.white : AppColor.neutral150,
fontSize: 12.toScreenWidth, fontSize: 12.toScreenWidth,
)); ));
case WorkOrderNextStepEnum.waitingForRequesterToConfirm: case WorkOrderNextStepEnum.waitingForRequesterToConfirm:
return footerContainer( return footerContainer(
context: context, context: context,
child: Column( child: Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
AppFilledButton(
label: 'Waiting for requester to verify',
buttonColor: AppColor.background(context),
textColor: context.isDark ? Colors.white: AppColor.neutral150,
// buttonColor: AppColor.neutral140,
// textColor: AppColor.neutral150,
fontSize: 12.toScreenWidth,
),
12.height,
Row(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Icon(Icons.info_outline_rounded, size: 16, color: context.isDark ? AppColor.neutral10 : AppColor.neutral120), AppFilledButton(
6.width, label: 'Waiting for requester to verify',
Text( buttonColor: AppColor.background(context),
"If you're experiencing issues with verification, please select another method to continue", textColor: context.isDark ? Colors.white : AppColor.neutral150,
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120), // buttonColor: AppColor.neutral140,
).expanded, // textColor: AppColor.neutral150,
fontSize: 12.toScreenWidth,
),
12.height,
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Icon(Icons.info_outline_rounded, size: 16, color: context.isDark ? AppColor.neutral10 : AppColor.neutral120),
6.width,
Text(
"If you're experiencing issues with verification, please select another method to continue",
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120),
).expanded,
],
),
12.height,
AppFilledButton(
label: "Switch Arrival Method",
showIcon: true,
buttonColor: AppColor.green70,
onPressed: () {
showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading());
Provider.of<ServiceRequestDetailProvider>(context, listen: false).switchToIHaveArrived().then((value) {
Navigator.pop(context);
if (value) {
Navigator.push(context, MaterialPageRoute(builder: (context) => const VerifyArrivalView()));
} else {
"Failed to switch, please try again".showToast;
}
});
},
)
], ],
), ));
12.height,
AppFilledButton(
label: "Switch Arrival Method",
showIcon: true,
buttonColor: AppColor.green70,
onPressed: () {
showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading());
Provider.of<ServiceRequestDetailProvider>(context, listen: false).switchToIHaveArrived().then((value) {
Navigator.pop(context);
if (value) {
Navigator.push(context, MaterialPageRoute(builder: (context) => const VerifyArrivalView()));
} else {
"Failed to switch, please try again".showToast;
}
});
},
)
],
));
case WorkOrderNextStepEnum.eFixRemotely: case WorkOrderNextStepEnum.eFixRemotely:
return footerContainer( return footerContainer(
context: context, context: context,
child: AppFilledButton( child: AppFilledButton(
label: context.translation.fixedRemotely, label: context.translation.fixedRemotely,
maxWidth: true, maxWidth: true,
@ -320,40 +320,40 @@ class FooterActionButton {
return footerContainer( return footerContainer(
context: context, context: context,
child: AppFilledButton( child: AppFilledButton(
label: context.translation.needAVisit, label: context.translation.needAVisit,
maxWidth: true, maxWidth: true,
textColor: context.isDark ? AppColor.neutral30 : Colors.white, textColor: context.isDark ? AppColor.neutral30 : Colors.white,
buttonColor: AppColor.neutral50, buttonColor: AppColor.neutral50,
onPressed: () async { onPressed: () async {
requestDetailProvider.needVisitHelperModel = NeedVisitHelperModel(); requestDetailProvider.needVisitHelperModel = NeedVisitHelperModel();
ServiceRequestBottomSheet.initialVisitBottomSheet(context: context); ServiceRequestBottomSheet.initialVisitBottomSheet(context: context);
}, },
)); ));
} }
} else { } else {
if (workOrderNextStepStatus == WorkOrderNextStepEnum.nTakeAction) { if (workOrderNextStepStatus == WorkOrderNextStepEnum.nTakeAction) {
return footerContainer( return footerContainer(
context: context, context: context,
child: AppFilledButton( child: AppFilledButton(
label: context.translation.takeAction, label: context.translation.takeAction,
// maxWidth: true, // maxWidth: true,
buttonColor: AppColor.primary10, buttonColor: AppColor.primary10,
onPressed: () async { onPressed: () async {
ServiceRequestBottomSheet.nurseTakeActionBottomSheet(context: context); ServiceRequestBottomSheet.nurseTakeActionBottomSheet(context: context);
}, },
)); ));
} }
if (workOrderNextStepStatus == WorkOrderNextStepEnum.waitingForRequesterToConfirm) { if (workOrderNextStepStatus == WorkOrderNextStepEnum.waitingForRequesterToConfirm) {
return footerContainer( return footerContainer(
context: context, context: context,
child: AppFilledButton( child: AppFilledButton(
label: context.translation.takeAction, label: context.translation.takeAction,
// maxWidth: true, // maxWidth: true,
buttonColor: AppColor.primary10, buttonColor: AppColor.primary10,
onPressed: () async { onPressed: () async {
ServiceRequestBottomSheet.nurseVerifyArrivalBottomSheet(context: context); ServiceRequestBottomSheet.nurseVerifyArrivalBottomSheet(context: context);
}, },
)); ));
} }
} }
return const SizedBox(); return const SizedBox();

@ -14,7 +14,6 @@ import 'package:test_sa/modules/cm_module/service_request_detail_provider.dart';
import 'package:test_sa/modules/cm_module/utilities/service_request_utils.dart'; import 'package:test_sa/modules/cm_module/utilities/service_request_utils.dart';
import 'package:test_sa/new_views/app_style/app_color.dart'; import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/views/widgets/buttons/app_back_button.dart'; import 'package:test_sa/views/widgets/buttons/app_back_button.dart';
import 'package:test_sa/views/widgets/loaders/no_data_found.dart'; import 'package:test_sa/views/widgets/loaders/no_data_found.dart';
import 'package:test_sa/views/widgets/requests/request_status.dart'; import 'package:test_sa/views/widgets/requests/request_status.dart';
@ -41,58 +40,60 @@ class HistoryLogView extends StatelessWidget {
endIndent: 10, endIndent: 10,
), ),
), ),
Builder(builder: (cxt) { SafeArea(
List<Widget> items = []; child: Builder(builder: (cxt) {
String lastStatus = ""; List<Widget> items = [];
DateTime? nextDate; String lastStatus = "";
var workOrderHistory = requestProvider.currentWorkOrder!.data!.workOrderHistory; DateTime? nextDate;
bool isNurse = (Provider.of<UserProvider>(context, listen: false).user?.type) == UsersTypes.normal_user; var workOrderHistory = requestProvider.currentWorkOrder!.data!.workOrderHistory;
if(isNurse) { bool isNurse = (Provider.of<UserProvider>(context, listen: false).user?.type) == UsersTypes.normal_user;
workOrderHistory.removeWhere((element)=>element.step?.id==5617); if (isNurse) {
} workOrderHistory.removeWhere((element) => element.step?.id == 5617);
for (int i = 0; i < workOrderHistory.length; i++) {
var object = workOrderHistory[i];
String currentStatus = object.workorderStatus!.name!;
if (lastStatus.isEmpty) {
lastStatus = currentStatus;
} }
if (lastStatus == currentStatus) { for (int i = 0; i < workOrderHistory.length; i++) {
if (i + 1 < workOrderHistory.length) { var object = workOrderHistory[i];
nextDate = workOrderHistory[i + 1].date; String currentStatus = object.workorderStatus!.name!;
String timeDifference = ServiceRequestUtils.calculateTimeDifference(object.date!, nextDate!); if (lastStatus.isEmpty) {
object.timeDifference = timeDifference; lastStatus = currentStatus;
} else {
object.timeDifference = ''; // Empty string for the last action
} }
items.add(historyLogCard(cxt, object)); if (lastStatus == currentStatus) {
} else { if (i + 1 < workOrderHistory.length) {
items.add(statusCard(cxt, lastStatus)); nextDate = workOrderHistory[i + 1].date;
lastStatus = currentStatus; String timeDifference = ServiceRequestUtils.calculateTimeDifference(object.date!, nextDate!);
if (i + 1 < workOrderHistory.length) { object.timeDifference = timeDifference;
nextDate = workOrderHistory[i + 1].date; } else {
String timeDifference = ServiceRequestUtils.calculateTimeDifference(object.date!, nextDate!); object.timeDifference = ''; // Empty string for the last action
object.timeDifference = timeDifference; }
items.add(historyLogCard(cxt, object));
} else { } else {
object.timeDifference = ''; // Empty string for the last action items.add(statusCard(cxt, lastStatus));
lastStatus = currentStatus;
if (i + 1 < workOrderHistory.length) {
nextDate = workOrderHistory[i + 1].date;
String timeDifference = ServiceRequestUtils.calculateTimeDifference(object.date!, nextDate!);
object.timeDifference = timeDifference;
} else {
object.timeDifference = ''; // Empty string for the last action
}
items.add(historyLogCard(cxt, object));
} }
items.add(historyLogCard(cxt, object));
} }
} items.add(statusCard(cxt, lastStatus));
items.add(statusCard(cxt, lastStatus)); return SingleChildScrollView(
return SingleChildScrollView( padding: const EdgeInsets.all(16),
padding: const EdgeInsets.all(16), child: Column(children: items),
child: Column(children: items), );
); }),
}), ),
], ],
)); ));
}); });
} }
Widget historyLogCard(BuildContext context, WorkOrderHistory object) { Widget historyLogCard(BuildContext context, WorkOrderHistory object) {
String title =object.step!.name!; String title = object.step!.name!;
if(object.step!.value == 18 || object.step!.value == 27 || object.step!.value == 28) { if (object.step!.value == 18 || object.step!.value == 27 || object.step!.value == 28) {
title = object.activityStatus?.name ?? ""; title = object.activityStatus?.name ?? "";
} }
@ -116,8 +117,7 @@ class HistoryLogView extends StatelessWidget {
children: [ children: [
if (object.assetVerificationType?.value == 4 && object.photoVerfication != null) ...[ if (object.assetVerificationType?.value == 4 && object.photoVerfication != null) ...[
Padding( Padding(
padding: EdgeInsets.symmetric(vertical: 12.toScreenWidth), padding: EdgeInsets.symmetric(vertical: 12.toScreenWidth),
child: InteractiveViewer(child: Image.network(URLs.getFileUrl(object.photoVerfication ?? '')!, height: 143.toScreenHeight)), child: InteractiveViewer(child: Image.network(URLs.getFileUrl(object.photoVerfication ?? '')!, height: 143.toScreenHeight)),
).onPress(() async { ).onPress(() async {
Navigator.of(context).push( Navigator.of(context).push(
@ -138,7 +138,6 @@ class HistoryLogView extends StatelessWidget {
], ],
title.bodyText(context).custom(color: AppColor.textColor(context)), title.bodyText(context).custom(color: AppColor.textColor(context)),
object.timeDifference.isNotEmpty ? object.timeDifference.tinyFont(context).custom(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120) : const SizedBox(), object.timeDifference.isNotEmpty ? object.timeDifference.tinyFont(context).custom(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120) : const SizedBox(),
], ],
), ),
), ),

@ -167,7 +167,7 @@ class _SelectionBottomSheetState<T extends Base> extends State<SelectionFullScre
}), }),
), ),
8.height, 8.height,
if (_selectedValue != null) 16.height, if (_selectedValue != null)
FooterActionButton.footerContainer( FooterActionButton.footerContainer(
context: context, context: context,
child: AppFilledButton( child: AppFilledButton(

Loading…
Cancel
Save