fixed home

This commit is contained in:
amirrezaghabeli
2026-04-16 09:10:37 +03:30
parent 7ae5c25ebb
commit 41bba5d32c
16 changed files with 83 additions and 53 deletions
+1
View File
@@ -9,6 +9,7 @@ import '../../view_models/home_view_model.dart';
/// Wraps screens that need HomeViewModel
Widget homeProvider({required Widget child}) {
return ChangeNotifierProvider(
lazy: true,
create:
(context) => HomeViewModel(
homeRepository: context.read<HomeRepository>(),
+1
View File
@@ -37,6 +37,7 @@ class TendersService {
method: 'GET',
(json) => TendersResponse.fromJson(json),
);
print(result);
return result;
}
+1 -1
View File
@@ -159,7 +159,7 @@ class HomeViewModel with ChangeNotifier {
);
_currentPage++;
if (metadata != null && (_currentPage >= metadata.pages!)) {
if (metadata != null && (_currentPage >= (metadata.pages ?? 0))) {
_hasMore = false;
}
} else {
+7 -6
View File
@@ -128,10 +128,11 @@ class DesktopHomePage extends StatelessWidget {
iconPath: AssetsManager.arrows,
title: HomeStrings.tenderSubmitted,
amount:
homeViewModel
.tenderApprovalsStateResponse!
.data!
.submittedTenders
(homeViewModel
.tenderApprovalsStateResponse
?.data
?.submittedTenders ??
0)
.toString(),
textColor: AppColors.mainBlue,
@@ -195,7 +196,7 @@ class DesktopHomePage extends StatelessWidget {
Widget _yourTenderText(HomeViewModel homeViewModel) {
final isYourTenders =
homeViewModel.data?.data?.tenders!.isNotEmpty ?? false;
(homeViewModel.data?.data?.tenders?.isNotEmpty ?? false);
return ConstrainedBox(
constraints: const BoxConstraints(maxWidth: 740),
child: Align(
@@ -244,7 +245,7 @@ class DesktopHomePage extends StatelessWidget {
tender: homeViewModel.tenders[index],
onTap: () {
TenderDetailRouteData(
tenderId: homeViewModel.tenders[index].id!,
tenderId: homeViewModel.tenders[index].id ?? '',
).push(context);
},
);
+4 -3
View File
@@ -105,7 +105,8 @@ class MobileHomePage extends StatelessWidget {
iconPath: AssetsManager.arrows,
title: HomeStrings.tenderSubmitted,
amount:
tenderApprovalsStateResponse.data!.submittedTenders.toString(),
(tenderApprovalsStateResponse.data?.submittedTenders ?? 0)
.toString(),
textColor: AppColors.mainBlue,
enableTap: true,
onTap: () {
@@ -171,7 +172,7 @@ class MobileHomePage extends StatelessWidget {
Widget _yourTenderText(HomeViewModel homeViewModel) {
final isYourTenders =
homeViewModel.data?.data?.tenders!.isNotEmpty ?? false;
(homeViewModel.data?.data?.tenders?.isNotEmpty ?? false);
return Padding(
padding: EdgeInsets.symmetric(horizontal: 24.0.w()),
child: Text(
@@ -220,7 +221,7 @@ class MobileHomePage extends StatelessWidget {
tender: homeViewModel.tenders[index],
onTap: () {
TenderDetailRouteData(
tenderId: homeViewModel.tenders[index].id!,
tenderId: homeViewModel.tenders[index].id ?? '',
).push(context);
},
);
+4 -3
View File
@@ -124,7 +124,8 @@ class TabletHomePage extends StatelessWidget {
iconPath: AssetsManager.arrows,
title: HomeStrings.tenderSubmitted,
amount:
tenderApprovalsStateResponse.data!.submittedTenders.toString(),
(tenderApprovalsStateResponse.data?.submittedTenders ?? 0)
.toString(),
textColor: AppColors.mainBlue,
enableTap: true,
@@ -201,7 +202,7 @@ class TabletHomePage extends StatelessWidget {
Widget _yourTenderText(HomeViewModel homeViewModel) {
final isYourTenders =
homeViewModel.data?.data?.tenders!.isNotEmpty ?? false;
(homeViewModel.data?.data?.tenders?.isNotEmpty ?? false);
return Text(
isYourTenders ? HomeStrings.yourTenders : HomeStrings.recommendedTenders,
style: TextStyle(
@@ -241,7 +242,7 @@ class TabletHomePage extends StatelessWidget {
tender: homeViewModel.tenders[index],
onTap: () {
TenderDetailRouteData(
tenderId: homeViewModel.tenders[index].id!,
tenderId: homeViewModel.tenders[index].id ?? '',
).push(context);
},
);
+5 -5
View File
@@ -34,7 +34,7 @@ class TendersListItem extends StatelessWidget {
SizedBox(
width: double.infinity,
child: Text(
timeConvertor(tender.publicationDate!),
timeConvertor(tender.publicationDate ?? 0),
style: TextStyle(
fontSize: 12.0.sp(),
fontWeight: FontWeight.w400,
@@ -64,7 +64,7 @@ class TendersListItem extends StatelessWidget {
),
),
Text(
timeConvertor(tender.tenderDeadline!),
timeConvertor(tender.tenderDeadline ?? 0),
style: TextStyle(
fontSize: 14.0.sp(),
fontWeight: FontWeight.w500,
@@ -76,7 +76,7 @@ class TendersListItem extends StatelessWidget {
),
SizedBox(height: 12.0.h()),
Text(
tender.title!,
tender.title ?? '',
style: TextStyle(
overflow: TextOverflow.ellipsis,
fontSize: 16.0.sp(),
@@ -88,7 +88,7 @@ class TendersListItem extends StatelessWidget {
SizedBox(
width: double.infinity,
child: Text(
tender.description!,
tender.description ?? '',
textAlign: TextAlign.start,
maxLines: 4,
overflow: TextOverflow.ellipsis,
@@ -110,7 +110,7 @@ class TendersListItem extends StatelessWidget {
SvgPicture.asset(AssetsManager.location),
SizedBox(width: 1.0.w()),
Text(
tender.countryCode!,
tender.countryCode ?? '',
style: TextStyle(
fontSize: 12.0.sp(),
fontWeight: FontWeight.w400,