Refactor provider initialization to load only essential providers at startup. Introduce TabNavigationService for managing tab state and update screens to respond to tab changes. Clean up view models and navigation logic for improved performance and maintainability.
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '../../view_models/final_completion_of_documents_view_model.dart';
|
||||
|
||||
/// Lazy FinalCompletionOfDocumentsViewModel provider
|
||||
/// Wraps screens that need FinalCompletionOfDocumentsViewModel
|
||||
Widget finalCompletionProvider({required Widget child}) {
|
||||
return ChangeNotifierProvider(
|
||||
create: (context) => FinalCompletionOfDocumentsViewModel(),
|
||||
child: child,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '../../data/repositories/home_repository.dart';
|
||||
import '../../data/services/notification_state_service.dart';
|
||||
import '../../view_models/home_view_model.dart';
|
||||
|
||||
/// Lazy HomeViewModel provider
|
||||
/// Wraps screens that need HomeViewModel
|
||||
Widget homeProvider({required Widget child}) {
|
||||
return ChangeNotifierProvider(
|
||||
create:
|
||||
(context) => HomeViewModel(
|
||||
homeRepository: context.read<HomeRepository>(),
|
||||
notificationStateService: context.read<NotificationStateService>(),
|
||||
),
|
||||
child: child,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '../../data/repositories/liked_tenders_repository.dart';
|
||||
import '../../data/repositories/tenders_repository.dart';
|
||||
import '../../view_models/liked_tenders_view_model.dart';
|
||||
|
||||
/// Lazy LikedTendersViewModel provider
|
||||
/// Wraps screens that need LikedTendersViewModel
|
||||
Widget likedTendersProvider({required Widget child}) {
|
||||
return ChangeNotifierProvider(
|
||||
create:
|
||||
(context) => LikedTendersViewModel(
|
||||
likedTendersRepository: context.read<LikedTendersRepository>(),
|
||||
tendersRepository: context.read<TendersRepository>(),
|
||||
),
|
||||
child: child,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '../../data/repositories/notification_repository.dart';
|
||||
import '../../data/services/notification_check_service.dart';
|
||||
import '../../data/services/notification_state_service.dart';
|
||||
import '../../view_models/notification_view_model.dart';
|
||||
|
||||
/// Lazy NotificationViewModel provider
|
||||
/// Wraps screens that need NotificationViewModel
|
||||
Widget notificationProvider({required Widget child}) {
|
||||
return ChangeNotifierProvider(
|
||||
create:
|
||||
(context) => NotificationViewModel(
|
||||
notificationsRepository: context.read<NotificationsRepository>(),
|
||||
notificationStateService: context.read<NotificationStateService>(),
|
||||
notificationCheckService: context.read<NotificationCheckService>(),
|
||||
),
|
||||
child: child,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '../../data/repositories/auth_repository.dart';
|
||||
import '../../data/repositories/profile_repository.dart';
|
||||
import '../../view_models/profile_view_model.dart';
|
||||
|
||||
/// Lazy ProfileViewModel provider
|
||||
/// Wraps screens that need ProfileViewModel
|
||||
Widget profileProvider({required Widget child}) {
|
||||
return ChangeNotifierProvider(
|
||||
create:
|
||||
(context) => ProfileViewModel(
|
||||
profileRepository: context.read<ProfileRepository>(),
|
||||
authRepository: context.read<AuthRepository>(),
|
||||
),
|
||||
child: child,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '../../data/repositories/tender_detail_repository.dart';
|
||||
import '../../data/repositories/tenders_repository.dart';
|
||||
import '../../view_models/tender_detail_view_model.dart';
|
||||
|
||||
/// Lazy TenderDetailViewModel provider
|
||||
/// Wraps screens that need TenderDetailViewModel
|
||||
Widget tenderDetailProvider({required Widget child}) {
|
||||
return ChangeNotifierProvider(
|
||||
create:
|
||||
(context) => TenderDetailViewModel(
|
||||
tenderDetailRepository: context.read<TenderDetailRepository>(),
|
||||
tendersRepository: context.read<TendersRepository>(),
|
||||
),
|
||||
child: child,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '../../data/repositories/tenders_repository.dart';
|
||||
import '../../view_models/tenders_view_model.dart';
|
||||
|
||||
/// Lazy TendersViewModel provider
|
||||
/// Wraps screens that need TendersViewModel
|
||||
Widget tendersProvider({required Widget child}) {
|
||||
return ChangeNotifierProvider(
|
||||
create:
|
||||
(context) => TendersViewModel(
|
||||
tendersRepository: context.read<TendersRepository>(),
|
||||
),
|
||||
child: child,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '../../data/repositories/your_tenders_repository.dart';
|
||||
import '../../view_models/your_tenders_view_model.dart';
|
||||
|
||||
/// Lazy YourTendersViewModel provider
|
||||
/// Wraps screens that need YourTendersViewModel
|
||||
Widget yourTendersProvider({required Widget child}) {
|
||||
return ChangeNotifierProvider(
|
||||
create:
|
||||
(context) => YourTendersViewModel(
|
||||
yourTendersRepository: context.read<YourTendersRepository>(),
|
||||
),
|
||||
child: child,
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user