diff --git a/lib/view_models/home_view_model.dart b/lib/view_models/home_view_model.dart index 6c1f93d..4869842 100644 --- a/lib/view_models/home_view_model.dart +++ b/lib/view_models/home_view_model.dart @@ -149,6 +149,8 @@ class HomeViewModel with ChangeNotifier { } } else { _hasMore = false; + _isLoadingMore = false; + getHomeRecommendTenders(reset: true); } break; diff --git a/lib/view_models/profile_view_model.dart b/lib/view_models/profile_view_model.dart index f827381..e88b842 100644 --- a/lib/view_models/profile_view_model.dart +++ b/lib/view_models/profile_view_model.dart @@ -21,9 +21,7 @@ class ProfileViewModel with ChangeNotifier { required AuthViewModel authViewModel, }) : _profileRepository = profileRepository, _authRepository = authRepository, - _authViewModel = authViewModel { - getCompanyProfile(); - } + _authViewModel = authViewModel; bool _isLoading = false; String? _errorMessage; diff --git a/lib/views/completion_of_documents/pages/m_completion_of_documents_page.dart b/lib/views/completion_of_documents/pages/m_completion_of_documents_page.dart index 7e8265b..3eaf6ba 100644 --- a/lib/views/completion_of_documents/pages/m_completion_of_documents_page.dart +++ b/lib/views/completion_of_documents/pages/m_completion_of_documents_page.dart @@ -20,7 +20,10 @@ class CompletionOfDocumentsMobilePage extends StatelessWidget { ), body: SafeArea( child: SingleChildScrollView( - padding: EdgeInsets.symmetric(horizontal: 16.0.w(), vertical: 12.0.h()), + padding: EdgeInsets.symmetric( + horizontal: 16.0.w(), + vertical: 12.0.h(), + ), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ @@ -115,8 +118,8 @@ class CompletionOfDocumentsMobilePage extends StatelessWidget { status: 'Completed', statusColor: AppColors.green30, statusBackgroundColor: AppColors.green10, - backgroundColor: AppColors.primary10, - borderSideColor: AppColors.primary20, + backgroundColor: AppColors.primary10Light, + borderSideColor: AppColors.primary30, ), _docCard( title: 'Tax Compliance Certificate', @@ -124,7 +127,7 @@ class CompletionOfDocumentsMobilePage extends StatelessWidget { status: 'Completed', statusColor: AppColors.green30, statusBackgroundColor: AppColors.green10, - backgroundColor: AppColors.primary10, + backgroundColor: AppColors.primary10Light, borderSideColor: AppColors.primary30, ), _docCard( @@ -161,7 +164,7 @@ class CompletionOfDocumentsMobilePage extends StatelessWidget { borderSideColor: AppColors.red10, ), SizedBox(height: 16.0.h()), - + Text( CompletionOfDocumentsStrings.setDeadline, style: TextStyle( @@ -198,7 +201,7 @@ class CompletionOfDocumentsMobilePage extends StatelessWidget { ), ), SizedBox(height: 16.0.h()), - + Container( padding: const EdgeInsets.all(12), height: 100.0.h(), diff --git a/lib/views/detail/widgets/tender_detail_action.dart b/lib/views/detail/widgets/tender_detail_action.dart index 7e1c3ea..e97d3bd 100644 --- a/lib/views/detail/widgets/tender_detail_action.dart +++ b/lib/views/detail/widgets/tender_detail_action.dart @@ -9,6 +9,7 @@ import 'package:tm_app/views/shared/select_submission_bottom_sheet.dart'; import '../../../core/constants/tender_approval_status.dart'; import '../../../core/constants/tender_submision_mode.dart'; +import '../../../core/routes/app_routes.dart'; import '../../../data/services/model/tender_data/tender_data.dart'; import '../../shared/select_submission_dialog.dart'; import '../strings/tender_details_strings.dart'; @@ -61,18 +62,24 @@ class TenderDetailActions extends StatelessWidget { // tenderId: detail.id!, // submissionMode: value, // ); - Future.delayed(Duration.zero, () { - showModalBottomSheet( - isDismissible: true, - // ignore: use_build_context_synchronously - context: context, - builder: (context) { - return SelectMeetingTimeBottomSheet( - onConfirm: (meetingTime) {}, - ); - }, - ); - }); + if (value == + TenderSubmissionMode.selfApply.value) { + const CompletionOfDocumentsMobileRouteData() + .push(context); + } else { + Future.delayed(Duration.zero, () { + showModalBottomSheet( + isDismissible: true, + // ignore: use_build_context_synchronously + context: context, + builder: (context) { + return SelectMeetingTimeBottomSheet( + onConfirm: (meetingTime) {}, + ); + }, + ); + }); + } }, ); }, diff --git a/lib/views/notification/pages/notification_screen.dart b/lib/views/notification/pages/notification_screen.dart index bba8da0..beaf3fa 100644 --- a/lib/views/notification/pages/notification_screen.dart +++ b/lib/views/notification/pages/notification_screen.dart @@ -18,50 +18,3 @@ class NotificationScreen extends StatelessWidget { ); } } - -// class NotificationModel { -// final String title; -// final String description; -// final String time; -// final String type; - -// NotificationModel({ -// required this.title, -// required this.description, -// required this.time, -// required this.type, -// }); -// } - -// final List notifications = [ -// NotificationModel( -// title: 'New Tender Invitation', -// description: 'You’ve been invited to tender #A-778.', -// time: '5 Min', -// type: 'new', -// ), -// NotificationModel( -// title: 'New Tender Invitation', -// description: 'You’ve been invited to tender #N-3762.', -// time: '28 Min', -// type: 'new', -// ), -// NotificationModel( -// title: 'Tender Submitted', -// description: 'You submitted bid for tender #B-554.', -// time: '28 Min', -// type: 'submit', -// ), -// NotificationModel( -// title: 'New Tender Invitation', -// description: 'You’ve been invited to tender #N-3762.', -// time: '28 Min', -// type: 'new', -// ), -// NotificationModel( -// title: 'Missing Documents', -// description: 'Please upload your company registration certificate.', -// time: '2 days ago', -// type: 'missing', -// ), -// ]; diff --git a/lib/views/profile/pages/profile_screen.dart b/lib/views/profile/pages/profile_screen.dart index 31f53e1..fad8aa1 100644 --- a/lib/views/profile/pages/profile_screen.dart +++ b/lib/views/profile/pages/profile_screen.dart @@ -1,15 +1,35 @@ import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:tm_app/core/utils/size_config.dart'; +import 'package:tm_app/view_models/profile_view_model.dart'; import 'package:tm_app/views/shared/responsive_builder.dart'; import '../pages/d_profile_page.dart'; import '../pages/m_profile_page.dart'; import '../pages/t_profile_page.dart'; -class ProfileScreen extends StatelessWidget { +class ProfileScreen extends StatefulWidget { const ProfileScreen({super.key}); + @override + State createState() => _ProfileScreenState(); +} + +class _ProfileScreenState extends State { + late ProfileViewModel viewModel; + + @override + void initState() { + super.initState(); + viewModel = context.read(); + WidgetsBinding.instance.addPostFrameCallback((_) { + viewModel.getCompanyProfile(); + }); + } + @override Widget build(BuildContext context) { + SizeConfig.init(context); return const ResponsiveBuilder( mobile: MobileProfilePage(), tablet: TabletProfilePage(), diff --git a/lib/views/tenders/pages/t_tenders_page.dart b/lib/views/tenders/pages/t_tenders_page.dart index fd0c2a6..88e0e8f 100644 --- a/lib/views/tenders/pages/t_tenders_page.dart +++ b/lib/views/tenders/pages/t_tenders_page.dart @@ -49,18 +49,14 @@ class _TabletTendersPageState extends State { viewModel.isLoading == false) { return const Center(child: Text(CommonStrings.noData)); } - return Expanded( - child: SingleChildScrollView( - child: SafeArea( - child: Padding( - padding: EdgeInsetsDirectional.only( - end: 24.0.w(), - top: 128.0.h(), - ), - child: MainTendersSlider( - tenders: viewModel.tendersResponse?.data?.tenders ?? [], - ), - ), + return SingleChildScrollView( + child: Padding( + padding: EdgeInsetsDirectional.only( + end: 24.0.w(), + top: 128.0.h(), + ), + child: MainTendersSlider( + tenders: viewModel.tendersResponse?.data?.tenders ?? [], ), ), ); diff --git a/lib/views/tenders/pages/tenders_screen.dart b/lib/views/tenders/pages/tenders_screen.dart index 6c3940a..e5a24ca 100644 --- a/lib/views/tenders/pages/tenders_screen.dart +++ b/lib/views/tenders/pages/tenders_screen.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import 'package:tm_app/core/utils/size_config.dart'; import 'package:tm_app/views/shared/responsive_builder.dart'; import '../../../view_models/tenders_view_model.dart'; @@ -28,6 +29,7 @@ class _TendersScreenState extends State { @override Widget build(BuildContext context) { + SizeConfig.init(context); return const ResponsiveBuilder( mobile: MobileTendersPage(), tablet: TabletTendersPage(),