feat: Enhance AvailableOrderCard layout and time formatting

This commit is contained in:
Achintha Isuru
2026-03-19 13:43:39 -04:00
parent 96056d0170
commit 833cb99f6b

View File

@@ -74,14 +74,15 @@ class AvailableOrderCard extends StatelessWidget {
'\$${order.hourlyRate.toStringAsFixed(order.hourlyRate.truncateToDouble() == order.hourlyRate ? 0 : 2)}'; '\$${order.hourlyRate.toStringAsFixed(order.hourlyRate.truncateToDouble() == order.hourlyRate ? 0 : 2)}';
final String dateRange = final String dateRange =
'${_formatDateShort(schedule.startDate)} - ${_formatDateShort(schedule.endDate)}'; '${_formatDateShort(schedule.startDate)} - ${_formatDateShort(schedule.endDate)}';
final String timeRange = '${schedule.startTime} - ${schedule.endTime}'; final String timeRange =
'${DateFormat('h:mm a').format(schedule.firstShiftStartsAt)} - ${DateFormat('h:mm a').format(schedule.lastShiftEndsAt)}';
return Container( return Container(
margin: const EdgeInsets.only(bottom: UiConstants.space3), margin: const EdgeInsets.only(bottom: UiConstants.space3),
decoration: BoxDecoration( decoration: BoxDecoration(
color: UiColors.white, color: UiColors.white,
borderRadius: UiConstants.radiusLg, borderRadius: UiConstants.radiusLg,
border: Border.all(color: UiColors.border), border: Border.all(color: UiColors.border, width: 0.5),
), ),
child: Padding( child: Padding(
padding: const EdgeInsets.all(UiConstants.space4), padding: const EdgeInsets.all(UiConstants.space4),
@@ -194,7 +195,7 @@ class AvailableOrderCard extends StatelessWidget {
if (order.locationAddress.isNotEmpty) if (order.locationAddress.isNotEmpty)
Padding( Padding(
padding: padding:
const EdgeInsets.only(bottom: UiConstants.space2), const EdgeInsets.only(bottom: UiConstants.space4),
child: Padding( child: Padding(
padding: const EdgeInsets.only( padding: const EdgeInsets.only(
left: UiConstants.iconXs + UiConstants.space1, left: UiConstants.iconXs + UiConstants.space1,
@@ -208,6 +209,7 @@ class AvailableOrderCard extends StatelessWidget {
), ),
), ),
// Schedule: days of week chips // Schedule: days of week chips
if (schedule.daysOfWeek.isNotEmpty) if (schedule.daysOfWeek.isNotEmpty)
Padding( Padding(
@@ -225,50 +227,48 @@ class AvailableOrderCard extends StatelessWidget {
), ),
// Date range + time + shifts count // Date range + time + shifts count
Row( Column(
children: <Widget>[ children: <Widget>[
const Icon( const SizedBox(height: UiConstants.space2),
UiIcons.calendar, Row(
size: UiConstants.iconXs, children: [
color: UiColors.iconSecondary, const Icon(
UiIcons.calendar,
size: UiConstants.iconXs,
color: UiColors.iconSecondary,
),
const SizedBox(width: UiConstants.space1),
Text(
dateRange,
style: UiTypography.footnote1r.textSecondary,
),
],
), ),
const SizedBox(width: UiConstants.space1), const SizedBox(width: UiConstants.space2),
Text( Row(
dateRange, children: [
style: UiTypography.footnote1r.textSecondary, const Icon(
), UiIcons.clock,
const SizedBox(width: UiConstants.space3), size: UiConstants.iconXs,
const Icon( color: UiColors.iconSecondary,
UiIcons.clock, ),
size: UiConstants.iconXs, const SizedBox(width: UiConstants.space1),
color: UiColors.iconSecondary, Text(
), timeRange,
const SizedBox(width: UiConstants.space1), style: UiTypography.footnote1r.textSecondary,
Text( ),
timeRange, ],
style: UiTypography.footnote1r.textSecondary,
), ),
], ],
), ),
const SizedBox(height: UiConstants.space1), const SizedBox(height: UiConstants.space1),
// Total shifts + timezone // Total shifts count
Row( Text(
children: <Widget>[ t.available_orders.shifts_count(
Text( count: schedule.totalShifts,
t.available_orders.shifts_count( ),
count: schedule.totalShifts, style: UiTypography.footnote2r.textSecondary,
),
style: UiTypography.footnote2r.textSecondary,
),
if (schedule.timezone.isNotEmpty) ...<Widget>[
const SizedBox(width: UiConstants.space2),
Text(
schedule.timezone,
style: UiTypography.footnote2r.textSecondary,
),
],
],
), ),
], ],
), ),