Merge pull request 'fixed bugs' (#191) from bug_fixes into main

Reviewed-on: https://repo.ravanertebat.com/TM/tm_app/pulls/191
This commit is contained in:
a.ghabeli
2025-09-30 11:12:49 +03:30
8 changed files with 62 additions and 81 deletions
+2
View File
@@ -149,6 +149,8 @@ class HomeViewModel with ChangeNotifier {
}
} else {
_hasMore = false;
_isLoadingMore = false;
getHomeRecommendTenders(reset: true);
}
break;
+1 -3
View File
@@ -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;
@@ -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(),
@@ -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) {},
);
},
);
});
}
},
);
},
@@ -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<NotificationModel> notifications = [
// NotificationModel(
// title: 'New Tender Invitation',
// description: 'Youve been invited to tender #A-778.',
// time: '5 Min',
// type: 'new',
// ),
// NotificationModel(
// title: 'New Tender Invitation',
// description: 'Youve 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: 'Youve 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',
// ),
// ];
+21 -1
View File
@@ -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<ProfileScreen> createState() => _ProfileScreenState();
}
class _ProfileScreenState extends State<ProfileScreen> {
late ProfileViewModel viewModel;
@override
void initState() {
super.initState();
viewModel = context.read<ProfileViewModel>();
WidgetsBinding.instance.addPostFrameCallback((_) {
viewModel.getCompanyProfile();
});
}
@override
Widget build(BuildContext context) {
SizeConfig.init(context);
return const ResponsiveBuilder(
mobile: MobileProfilePage(),
tablet: TabletProfilePage(),
+8 -12
View File
@@ -49,18 +49,14 @@ class _TabletTendersPageState extends State<TabletTendersPage> {
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 ?? [],
),
),
);
@@ -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<TendersScreen> {
@override
Widget build(BuildContext context) {
SizeConfig.init(context);
return const ResponsiveBuilder(
mobile: MobileTendersPage(),
tablet: TabletTendersPage(),