diff --git a/apps/mobile/packages/features/staff/authentication/lib/src/presentation/pages/phone_verification_page.dart b/apps/mobile/packages/features/staff/authentication/lib/src/presentation/pages/phone_verification_page.dart index b58ed1bf..0192487c 100644 --- a/apps/mobile/packages/features/staff/authentication/lib/src/presentation/pages/phone_verification_page.dart +++ b/apps/mobile/packages/features/staff/authentication/lib/src/presentation/pages/phone_verification_page.dart @@ -1,15 +1,15 @@ +import 'package:design_system/design_system.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_modular/flutter_modular.dart'; -import 'package:design_system/design_system.dart'; -import 'package:staff_authentication/src/domain/ui_entities/auth_mode.dart'; +import 'package:staff_authentication/src/presentation/blocs/auth_bloc.dart'; import 'package:staff_authentication/src/presentation/blocs/auth_event.dart'; import 'package:staff_authentication/src/presentation/blocs/auth_state.dart'; -import 'package:staff_authentication/src/presentation/blocs/auth_bloc.dart'; -import '../widgets/phone_verification_page/phone_input.dart'; -import '../widgets/phone_verification_page/otp_verification.dart'; import 'package:staff_authentication/staff_authentication.dart'; + import '../navigation/auth_navigator.dart'; // Import the extension +import '../widgets/phone_verification_page/otp_verification.dart'; +import '../widgets/phone_verification_page/phone_input.dart'; /// A combined page for phone number entry and OTP verification. /// diff --git a/apps/mobile/packages/features/staff/authentication/lib/src/presentation/widgets/phone_verification_page/phone_input.dart b/apps/mobile/packages/features/staff/authentication/lib/src/presentation/widgets/phone_verification_page/phone_input.dart index 01be5bf4..9ad647f3 100644 --- a/apps/mobile/packages/features/staff/authentication/lib/src/presentation/widgets/phone_verification_page/phone_input.dart +++ b/apps/mobile/packages/features/staff/authentication/lib/src/presentation/widgets/phone_verification_page/phone_input.dart @@ -9,15 +9,29 @@ import 'phone_input/phone_input_form_field.dart'; import 'phone_input/phone_input_header.dart'; /// A widget that displays the phone number entry UI. -class PhoneInput extends StatelessWidget { +class PhoneInput extends StatefulWidget { + /// Creates a [PhoneInput]. + const PhoneInput({super.key, required this.state, required this.onSendCode}); + /// The current state of the authentication process. final AuthState state; /// Callback for when the "Send Code" action is triggered. final VoidCallback onSendCode; - /// Creates a [PhoneInput]. - const PhoneInput({super.key, required this.state, required this.onSendCode}); + @override + State createState() => _PhoneInputState(); +} + +class _PhoneInputState extends State { + void _handlePhoneChanged(String value) { + if (!mounted) return; + + final AuthBloc bloc = context.read(); + if (!bloc.isClosed) { + bloc.add(AuthPhoneUpdated(value)); + } + } @override Widget build(BuildContext context) { @@ -35,19 +49,18 @@ class PhoneInput extends StatelessWidget { const PhoneInputHeader(), const SizedBox(height: UiConstants.space8), PhoneInputFormField( - initialValue: state.phoneNumber, - error: state.errorMessage ?? '', - onChanged: (String value) { - BlocProvider.of( - context, - ).add(AuthPhoneUpdated(value)); - }, + initialValue: widget.state.phoneNumber, + error: widget.state.errorMessage ?? '', + onChanged: _handlePhoneChanged, ), ], ), ), ), - PhoneInputActions(isLoading: state.isLoading, onSendCode: onSendCode), + PhoneInputActions( + isLoading: widget.state.isLoading, + onSendCode: widget.onSendCode, + ), ], ); } diff --git a/apps/mobile/packages/features/staff/home/lib/src/data/repositories/home_repository_impl.dart b/apps/mobile/packages/features/staff/home/lib/src/data/repositories/home_repository_impl.dart index 508e350a..40e6ddfe 100644 --- a/apps/mobile/packages/features/staff/home/lib/src/data/repositories/home_repository_impl.dart +++ b/apps/mobile/packages/features/staff/home/lib/src/data/repositories/home_repository_impl.dart @@ -44,7 +44,7 @@ class HomeRepositoryImpl implements HomeRepository { if (shiftDate == null) return false; final isDateMatch = DateFormat('yyyy-MM-dd').format(shiftDate) == targetYmd; - final isAssigned = app.status is Known && (app.status as Known).value == ApplicationStatus.ACCEPTED; + final isAssigned = app.status is Known && ((app.status as Known).value == ApplicationStatus.ACCEPTED || (app.status as Known).value == ApplicationStatus.CONFIRMED); return isDateMatch && isAssigned; }) diff --git a/apps/mobile/packages/features/staff/home/lib/src/presentation/pages/worker_home_page.dart b/apps/mobile/packages/features/staff/home/lib/src/presentation/pages/worker_home_page.dart index 1cbb51fc..a9b3f169 100644 --- a/apps/mobile/packages/features/staff/home/lib/src/presentation/pages/worker_home_page.dart +++ b/apps/mobile/packages/features/staff/home/lib/src/presentation/pages/worker_home_page.dart @@ -13,7 +13,6 @@ import 'package:staff_home/src/presentation/widgets/home_page/quick_action_item. import 'package:staff_home/src/presentation/widgets/home_page/recommended_shift_card.dart'; import 'package:staff_home/src/presentation/widgets/home_page/section_header.dart'; import 'package:staff_home/src/presentation/widgets/shift_card.dart'; -import 'package:staff_home/src/presentation/widgets/worker/auto_match_toggle.dart'; /// The home page for the staff worker application. /// diff --git a/apps/mobile/packages/features/staff/home/lib/src/presentation/widgets/shift_card.dart b/apps/mobile/packages/features/staff/home/lib/src/presentation/widgets/shift_card.dart index f2a95f0d..f223bbcd 100644 --- a/apps/mobile/packages/features/staff/home/lib/src/presentation/widgets/shift_card.dart +++ b/apps/mobile/packages/features/staff/home/lib/src/presentation/widgets/shift_card.dart @@ -5,6 +5,7 @@ import 'package:intl/intl.dart'; import 'package:design_system/design_system.dart'; import 'package:krow_domain/krow_domain.dart'; +import '../navigation/home_navigator.dart'; class ShiftCard extends StatefulWidget { final Shift shift; @@ -73,10 +74,7 @@ class _ShiftCardState extends State { ? null : () { setState(() => isExpanded = !isExpanded); - Modular.to.pushNamed( - '/shift-details/${widget.shift.id}', - arguments: widget.shift, - ); + Modular.to.pushShiftDetails(widget.shift); }, child: Container( margin: const EdgeInsets.only(bottom: 12),