fix(staff): resolve dependency injection and navigation issues
- Registered HomeRepository in StaffHomeModule to fix UnregisteredInstance error - Updated WorkerHomePage to use Modular DI for HomeCubit - Added trailing slash to home navigation to resolve Modular warning
This commit is contained in:
@@ -11,10 +11,8 @@ import 'package:staff_home/src/presentation/widgets/worker/auto_match_toggle.dar
|
|||||||
import 'package:staff_home/src/presentation/widgets/worker/benefits_widget.dart';
|
import 'package:staff_home/src/presentation/widgets/worker/benefits_widget.dart';
|
||||||
import 'package:staff_home/src/presentation/widgets/worker/improve_yourself_widget.dart';
|
import 'package:staff_home/src/presentation/widgets/worker/improve_yourself_widget.dart';
|
||||||
import 'package:staff_home/src/presentation/widgets/worker/more_ways_widget.dart';
|
import 'package:staff_home/src/presentation/widgets/worker/more_ways_widget.dart';
|
||||||
import 'package:staff_home/src/data/services/mock_service.dart';
|
|
||||||
import 'package:staff_home/src/domain/models/shift.dart';
|
import 'package:staff_home/src/domain/models/shift.dart';
|
||||||
import 'package:staff_home/src/presentation/blocs/home_cubit.dart';
|
import 'package:staff_home/src/presentation/blocs/home_cubit.dart';
|
||||||
import 'package:staff_home/src/data/repositories/home_repository_impl.dart';
|
|
||||||
|
|
||||||
class WorkerHomePage extends StatefulWidget {
|
class WorkerHomePage extends StatefulWidget {
|
||||||
const WorkerHomePage({super.key});
|
const WorkerHomePage({super.key});
|
||||||
@@ -34,12 +32,9 @@ class _WorkerHomePageState extends State<WorkerHomePage> {
|
|||||||
final quickI18n = i18n.quick_actions;
|
final quickI18n = i18n.quick_actions;
|
||||||
final sectionsI18n = i18n.sections;
|
final sectionsI18n = i18n.sections;
|
||||||
final emptyI18n = i18n.empty_states;
|
final emptyI18n = i18n.empty_states;
|
||||||
|
final recI18n = i18n.recommended_card;
|
||||||
return BlocProvider(
|
return BlocProvider(
|
||||||
create: (_) => HomeCubit(
|
create: (_) => Modular.get<HomeCubit>()..loadShifts(),
|
||||||
// provide repository implementation backed by mock service for now
|
|
||||||
// later this should be wired from a DI container
|
|
||||||
HomeRepositoryImpl(mockService),
|
|
||||||
)..loadShifts(),
|
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
backgroundColor: AppColors.krowBackground,
|
backgroundColor: AppColors.krowBackground,
|
||||||
body: SafeArea(
|
body: SafeArea(
|
||||||
|
|||||||
@@ -1,11 +1,17 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_modular/flutter_modular.dart';
|
import 'package:flutter_modular/flutter_modular.dart';
|
||||||
|
import 'package:staff_home/src/data/repositories/home_repository_impl.dart';
|
||||||
|
import 'package:staff_home/src/data/services/mock_service.dart';
|
||||||
|
import 'package:staff_home/src/domain/repositories/home_repository.dart';
|
||||||
import 'package:staff_home/src/presentation/blocs/home_cubit.dart';
|
import 'package:staff_home/src/presentation/blocs/home_cubit.dart';
|
||||||
import 'package:staff_home/src/presentation/pages/worker_home_page.dart';
|
import 'package:staff_home/src/presentation/pages/worker_home_page.dart';
|
||||||
|
|
||||||
class StaffHomeModule extends Module {
|
class StaffHomeModule extends Module {
|
||||||
@override
|
@override
|
||||||
void binds(Injector i) {
|
void binds(Injector i) {
|
||||||
|
i.addLazySingleton<HomeRepository>(
|
||||||
|
() => HomeRepositoryImpl(mockService),
|
||||||
|
);
|
||||||
i.addSingleton(HomeCubit.new);
|
i.addSingleton(HomeCubit.new);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ extension StaffMainNavigator on IModularNavigator {
|
|||||||
|
|
||||||
/// Navigates to the Home tab.
|
/// Navigates to the Home tab.
|
||||||
void navigateToHome() {
|
void navigateToHome() {
|
||||||
navigate(StaffMainRoutes.homeFull);
|
navigate('${StaffMainRoutes.homeFull}/');
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Navigates to the Clock In tab.
|
/// Navigates to the Clock In tab.
|
||||||
|
|||||||
Reference in New Issue
Block a user