diff --git a/apps/mobile/packages/features/staff/shifts/lib/src/data/repositories_impl/shifts_repository_impl.dart b/apps/mobile/packages/features/staff/shifts/lib/src/data/repositories_impl/shifts_repository_impl.dart index 564d2848..3d40e268 100644 --- a/apps/mobile/packages/features/staff/shifts/lib/src/data/repositories_impl/shifts_repository_impl.dart +++ b/apps/mobile/packages/features/staff/shifts/lib/src/data/repositories_impl/shifts_repository_impl.dart @@ -246,7 +246,7 @@ class ShiftsRepositoryImpl implements ShiftsRepositoryInterface { await _dataConnect.createApplication( shiftId: shiftId, staffId: staffId, - roleId: role.id, + roleId: role.roleId, status: isInstantBook ? dc.ApplicationStatus.ACCEPTED : dc.ApplicationStatus.PENDING, origin: dc.ApplicationOrigin.STAFF, ).execute(); diff --git a/apps/mobile/packages/features/staff/shifts/lib/src/presentation/blocs/shifts/shifts_bloc.dart b/apps/mobile/packages/features/staff/shifts/lib/src/presentation/blocs/shifts/shifts_bloc.dart index 1b21f68b..d2983315 100644 --- a/apps/mobile/packages/features/staff/shifts/lib/src/presentation/blocs/shifts/shifts_bloc.dart +++ b/apps/mobile/packages/features/staff/shifts/lib/src/presentation/blocs/shifts/shifts_bloc.dart @@ -55,7 +55,7 @@ class ShiftsBloc extends Bloc { myShifts: myShiftsResult, pendingShifts: pendingResult, cancelledShifts: cancelledResult, - availableShifts: availableResult, + availableShifts: _filterPastShifts(availableResult), historyShifts: historyResult, searchQuery: '', jobType: 'all', @@ -81,7 +81,7 @@ class ShiftsBloc extends Bloc { )); emit(currentState.copyWith( - availableShifts: result, + availableShifts: _filterPastShifts(result), searchQuery: event.query ?? currentState.searchQuery, jobType: event.jobType ?? currentState.jobType, )); @@ -90,4 +90,17 @@ class ShiftsBloc extends Bloc { } } } + + List _filterPastShifts(List shifts) { + final now = DateTime.now(); + return shifts.where((shift) { + if (shift.date.isEmpty) return false; + try { + final shiftDate = DateTime.parse(shift.date); + return shiftDate.isAfter(now); + } catch (_) { + return false; + } + }).toList(); + } }