production
This commit is contained in:
@@ -207,25 +207,29 @@ class _ShipmentReviewPageState extends State<ShipmentReviewPage>
|
||||
Expanded(
|
||||
child: SingleChildScrollView(
|
||||
physics: const BouncingScrollPhysics(),
|
||||
padding: EdgeInsets.fromLTRB(16.w, 12.h, 16.w, 24.h),
|
||||
// Full-bleed bands, like the verification screen this page is the
|
||||
// end of. The section headers moved inside the band they head — a
|
||||
// heading on the page and a card under it puts two left margins on
|
||||
// one screen, which is the thing bands exist to stop. See
|
||||
// [MilerBand].
|
||||
padding: EdgeInsets.only(bottom: 24.h),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
_routeCard(),
|
||||
SizedBox(height: 14.h),
|
||||
const SectionHeader(title: 'Shipment'),
|
||||
SizedBox(height: 8.h),
|
||||
SizedBox(height: MilerBand.gap),
|
||||
_shipmentCard(),
|
||||
SizedBox(height: 14.h),
|
||||
const SectionHeader(title: 'Payment'),
|
||||
SizedBox(height: 8.h),
|
||||
SizedBox(height: MilerBand.gap),
|
||||
_paymentCard(),
|
||||
if (_error != null) ...[
|
||||
SizedBox(height: 14.h),
|
||||
InfoBanner(
|
||||
icon: LucideIcons.circleAlert,
|
||||
text: _error!,
|
||||
color: ColorConstants.errorRed,
|
||||
SizedBox(height: MilerBand.gap),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: MilerBand.pad),
|
||||
child: InfoBanner(
|
||||
icon: LucideIcons.circleAlert,
|
||||
text: _error!,
|
||||
color: ColorConstants.errorRed,
|
||||
),
|
||||
),
|
||||
],
|
||||
],
|
||||
@@ -239,7 +243,7 @@ class _ShipmentReviewPageState extends State<ShipmentReviewPage>
|
||||
|
||||
/// From → to, drawn as a journey rather than two labelled fields.
|
||||
Widget _routeCard() {
|
||||
return AppCard(
|
||||
return MilerBand(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
@@ -345,9 +349,12 @@ class _ShipmentReviewPageState extends State<ShipmentReviewPage>
|
||||
final weight = widget.shipment['weight'];
|
||||
final km = widget.shipment['approxkm'];
|
||||
|
||||
return AppCard(
|
||||
return MilerBand(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
const SectionHeader(title: 'Shipment'),
|
||||
SizedBox(height: 4.h),
|
||||
_row('Weight', weight == null ? '—' : '$weight kg'),
|
||||
_divider(),
|
||||
_row('Category', _s(widget.shipment['category'])),
|
||||
@@ -374,9 +381,12 @@ class _ShipmentReviewPageState extends State<ShipmentReviewPage>
|
||||
}
|
||||
|
||||
Widget _paymentCard() {
|
||||
return AppCard(
|
||||
return MilerBand(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
const SectionHeader(title: 'Payment'),
|
||||
SizedBox(height: 10.h),
|
||||
Row(
|
||||
children: [
|
||||
for (final m in ShipmentPayMethod.values) ...[
|
||||
@@ -425,7 +435,7 @@ class _ShipmentReviewPageState extends State<ShipmentReviewPage>
|
||||
padding: EdgeInsets.symmetric(vertical: 12.h),
|
||||
decoration: BoxDecoration(
|
||||
color: selected
|
||||
? ColorConstants.primary.withValues(alpha: 0.08)
|
||||
? ColorConstants.tint(ColorConstants.primary, 0.08)
|
||||
: ColorConstants.daylightSurface,
|
||||
borderRadius: BorderRadius.circular(DesignConstants.radiusLg),
|
||||
border: Border.all(
|
||||
|
||||
Reference in New Issue
Block a user