feat: Refactor profile completion use cases and update related imports in HomeCubit and StaffHomeModule
This commit is contained in:
@@ -1,11 +1,10 @@
|
|||||||
import 'package:bloc/bloc.dart';
|
import 'package:bloc/bloc.dart';
|
||||||
import 'package:equatable/equatable.dart';
|
import 'package:equatable/equatable.dart';
|
||||||
import 'package:krow_core/core.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:krow_data_connect/krow_data_connect.dart';
|
||||||
|
import 'package:krow_domain/krow_domain.dart';
|
||||||
import 'package:staff_home/src/domain/usecases/get_home_shifts.dart';
|
|
||||||
import 'package:staff_home/src/domain/repositories/home_repository.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';
|
part 'home_state.dart';
|
||||||
|
|
||||||
@@ -14,18 +13,18 @@ class HomeCubit extends Cubit<HomeState> with BlocErrorHandler<HomeState> {
|
|||||||
final GetHomeShifts _getHomeShifts;
|
final GetHomeShifts _getHomeShifts;
|
||||||
final HomeRepository _repository;
|
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)
|
/// Used to determine whether profile-gated features (such as shift browsing)
|
||||||
/// should be enabled on the home screen.
|
/// should be enabled on the home screen.
|
||||||
final GetPersonalInfoCompletionUseCase _getPersonalInfoCompletion;
|
final GetProfileCompletionUseCase _getProfileCompletion;
|
||||||
|
|
||||||
HomeCubit({
|
HomeCubit({
|
||||||
required HomeRepository repository,
|
required HomeRepository repository,
|
||||||
required GetPersonalInfoCompletionUseCase getPersonalInfoCompletion,
|
required GetProfileCompletionUseCase getProfileCompletion,
|
||||||
}) : _getHomeShifts = GetHomeShifts(repository),
|
}) : _getHomeShifts = GetHomeShifts(repository),
|
||||||
_repository = repository,
|
_repository = repository,
|
||||||
_getPersonalInfoCompletion = getPersonalInfoCompletion,
|
_getProfileCompletion = getProfileCompletion,
|
||||||
super(const HomeState.initial());
|
super(const HomeState.initial());
|
||||||
|
|
||||||
Future<void> loadShifts() async {
|
Future<void> loadShifts() async {
|
||||||
@@ -37,7 +36,7 @@ class HomeCubit extends Cubit<HomeState> with BlocErrorHandler<HomeState> {
|
|||||||
// Fetch shifts, name, benefits and profile completion status concurrently
|
// Fetch shifts, name, benefits and profile completion status concurrently
|
||||||
final results = await Future.wait([
|
final results = await Future.wait([
|
||||||
_getHomeShifts.call(),
|
_getHomeShifts.call(),
|
||||||
_getPersonalInfoCompletion.call(),
|
_getProfileCompletion.call(),
|
||||||
_repository.getBenefits(),
|
_repository.getBenefits(),
|
||||||
_repository.getStaffName(),
|
_repository.getStaffName(),
|
||||||
]);
|
]);
|
||||||
|
|||||||
@@ -24,9 +24,9 @@ class StaffHomeModule extends Module {
|
|||||||
() => StaffConnectorRepositoryImpl(),
|
() => StaffConnectorRepositoryImpl(),
|
||||||
);
|
);
|
||||||
|
|
||||||
// Use case for checking personal info profile completion
|
// Use case for checking profile completion
|
||||||
i.addLazySingleton<GetPersonalInfoCompletionUseCase>(
|
i.addLazySingleton<GetProfileCompletionUseCase>(
|
||||||
() => GetPersonalInfoCompletionUseCase(
|
() => GetProfileCompletionUseCase(
|
||||||
repository: i.get<StaffConnectorRepository>(),
|
repository: i.get<StaffConnectorRepository>(),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@@ -35,7 +35,7 @@ class StaffHomeModule extends Module {
|
|||||||
i.addSingleton(
|
i.addSingleton(
|
||||||
() => HomeCubit(
|
() => HomeCubit(
|
||||||
repository: i.get<HomeRepository>(),
|
repository: i.get<HomeRepository>(),
|
||||||
getPersonalInfoCompletion: i.get<GetPersonalInfoCompletionUseCase>(),
|
getProfileCompletion: i.get<GetProfileCompletionUseCase>(),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,9 @@ import 'package:core_localization/core_localization.dart';
|
|||||||
import 'package:design_system/design_system.dart';
|
import 'package:design_system/design_system.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||||
|
import 'package:flutter_modular/flutter_modular.dart';
|
||||||
import 'package:geolocator/geolocator.dart';
|
import 'package:geolocator/geolocator.dart';
|
||||||
|
import 'package:krow_core/core.dart';
|
||||||
import 'package:krow_domain/krow_domain.dart';
|
import 'package:krow_domain/krow_domain.dart';
|
||||||
|
|
||||||
import '../../blocs/shifts/shifts_bloc.dart';
|
import '../../blocs/shifts/shifts_bloc.dart';
|
||||||
@@ -315,20 +317,23 @@ class _FindShiftsTabState extends State<FindShiftsTab> {
|
|||||||
children: [
|
children: [
|
||||||
// Incomplete profile banner
|
// Incomplete profile banner
|
||||||
if (!widget.profileComplete) ...[
|
if (!widget.profileComplete) ...[
|
||||||
Container(
|
GestureDetector(
|
||||||
padding: const EdgeInsets.all(UiConstants.space4),
|
onTap: () => Modular.to.toProfile(),
|
||||||
child: UiNoticeBanner(
|
child: Container(
|
||||||
icon: UiIcons.sparkles,
|
padding: const EdgeInsets.all(UiConstants.space4),
|
||||||
title: context
|
child: UiNoticeBanner(
|
||||||
.t
|
icon: UiIcons.sparkles,
|
||||||
.staff_shifts
|
title: context
|
||||||
.find_shifts
|
.t
|
||||||
.incomplete_profile_banner_title,
|
.staff_shifts
|
||||||
description: context
|
.find_shifts
|
||||||
.t
|
.incomplete_profile_banner_title,
|
||||||
.staff_shifts
|
description: context
|
||||||
.find_shifts
|
.t
|
||||||
.incomplete_profile_banner_message,
|
.staff_shifts
|
||||||
|
.find_shifts
|
||||||
|
.incomplete_profile_banner_message,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|||||||
Reference in New Issue
Block a user