From e05ca7c0452e4708325d017a271d7f08649b6f6c Mon Sep 17 00:00:00 2001 From: Achintha Isuru Date: Sat, 28 Feb 2026 22:46:55 -0500 Subject: [PATCH] feat: Refactor profile completion use cases and update related imports in HomeCubit and StaffHomeModule --- .../src/presentation/blocs/home_cubit.dart | 15 ++++----- .../staff/home/lib/src/staff_home_module.dart | 8 ++--- .../widgets/tabs/find_shifts_tab.dart | 33 +++++++++++-------- 3 files changed, 30 insertions(+), 26 deletions(-) diff --git a/apps/mobile/packages/features/staff/home/lib/src/presentation/blocs/home_cubit.dart b/apps/mobile/packages/features/staff/home/lib/src/presentation/blocs/home_cubit.dart index f77e1614..ac0e2408 100644 --- a/apps/mobile/packages/features/staff/home/lib/src/presentation/blocs/home_cubit.dart +++ b/apps/mobile/packages/features/staff/home/lib/src/presentation/blocs/home_cubit.dart @@ -1,11 +1,10 @@ import 'package:bloc/bloc.dart'; import 'package:equatable/equatable.dart'; import 'package:krow_core/core.dart'; -import 'package:krow_domain/krow_domain.dart'; import 'package:krow_data_connect/krow_data_connect.dart'; - -import 'package:staff_home/src/domain/usecases/get_home_shifts.dart'; +import 'package:krow_domain/krow_domain.dart'; import 'package:staff_home/src/domain/repositories/home_repository.dart'; +import 'package:staff_home/src/domain/usecases/get_home_shifts.dart'; part 'home_state.dart'; @@ -14,18 +13,18 @@ class HomeCubit extends Cubit with BlocErrorHandler { final GetHomeShifts _getHomeShifts; final HomeRepository _repository; - /// Use case that checks whether the staff member's personal info is complete. + /// Use case that checks whether the staff member's profile is complete. /// /// Used to determine whether profile-gated features (such as shift browsing) /// should be enabled on the home screen. - final GetPersonalInfoCompletionUseCase _getPersonalInfoCompletion; + final GetProfileCompletionUseCase _getProfileCompletion; HomeCubit({ required HomeRepository repository, - required GetPersonalInfoCompletionUseCase getPersonalInfoCompletion, + required GetProfileCompletionUseCase getProfileCompletion, }) : _getHomeShifts = GetHomeShifts(repository), _repository = repository, - _getPersonalInfoCompletion = getPersonalInfoCompletion, + _getProfileCompletion = getProfileCompletion, super(const HomeState.initial()); Future loadShifts() async { @@ -37,7 +36,7 @@ class HomeCubit extends Cubit with BlocErrorHandler { // Fetch shifts, name, benefits and profile completion status concurrently final results = await Future.wait([ _getHomeShifts.call(), - _getPersonalInfoCompletion.call(), + _getProfileCompletion.call(), _repository.getBenefits(), _repository.getStaffName(), ]); diff --git a/apps/mobile/packages/features/staff/home/lib/src/staff_home_module.dart b/apps/mobile/packages/features/staff/home/lib/src/staff_home_module.dart index 7945045f..74cc76c4 100644 --- a/apps/mobile/packages/features/staff/home/lib/src/staff_home_module.dart +++ b/apps/mobile/packages/features/staff/home/lib/src/staff_home_module.dart @@ -24,9 +24,9 @@ class StaffHomeModule extends Module { () => StaffConnectorRepositoryImpl(), ); - // Use case for checking personal info profile completion - i.addLazySingleton( - () => GetPersonalInfoCompletionUseCase( + // Use case for checking profile completion + i.addLazySingleton( + () => GetProfileCompletionUseCase( repository: i.get(), ), ); @@ -35,7 +35,7 @@ class StaffHomeModule extends Module { i.addSingleton( () => HomeCubit( repository: i.get(), - getPersonalInfoCompletion: i.get(), + getProfileCompletion: i.get(), ), ); } diff --git a/apps/mobile/packages/features/staff/shifts/lib/src/presentation/widgets/tabs/find_shifts_tab.dart b/apps/mobile/packages/features/staff/shifts/lib/src/presentation/widgets/tabs/find_shifts_tab.dart index 726bc560..a9468691 100644 --- a/apps/mobile/packages/features/staff/shifts/lib/src/presentation/widgets/tabs/find_shifts_tab.dart +++ b/apps/mobile/packages/features/staff/shifts/lib/src/presentation/widgets/tabs/find_shifts_tab.dart @@ -2,7 +2,9 @@ import 'package:core_localization/core_localization.dart'; 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:geolocator/geolocator.dart'; +import 'package:krow_core/core.dart'; import 'package:krow_domain/krow_domain.dart'; import '../../blocs/shifts/shifts_bloc.dart'; @@ -315,20 +317,23 @@ class _FindShiftsTabState extends State { children: [ // Incomplete profile banner if (!widget.profileComplete) ...[ - Container( - padding: const EdgeInsets.all(UiConstants.space4), - child: UiNoticeBanner( - icon: UiIcons.sparkles, - title: context - .t - .staff_shifts - .find_shifts - .incomplete_profile_banner_title, - description: context - .t - .staff_shifts - .find_shifts - .incomplete_profile_banner_message, + GestureDetector( + onTap: () => Modular.to.toProfile(), + child: Container( + padding: const EdgeInsets.all(UiConstants.space4), + child: UiNoticeBanner( + icon: UiIcons.sparkles, + title: context + .t + .staff_shifts + .find_shifts + .incomplete_profile_banner_title, + description: context + .t + .staff_shifts + .find_shifts + .incomplete_profile_banner_message, + ), ), ), ],