Added SafeArea to all page

This commit is contained in:
llsajjad
2025-09-24 13:19:37 +03:30
parent 7456418ea2
commit e5cf89c2ce
23 changed files with 1060 additions and 1016 deletions
@@ -39,88 +39,90 @@ class _YourTendersDesktopPageState extends State<YourTendersDesktopPage>
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: AppColors.backgroundColor,
body: Column(
children: [
const DesktopNavigationWidget(currentIndex: 1), // Tenders index
Expanded(
child: SizedBox(
width: 740,
child: Column(
children: [
SizedBox(height: 64.0.h()),
const TabletDesktopAppbar(
title: YourTendersStrings.yourTenders,
),
SizedBox(height: 20.0.h()),
const FilterButton(platformType: PlatformType.tabletDesktop),
Expanded(
child: Consumer<YourTendersViewModel>(
builder: (context, viewModel, child) {
if (viewModel.isLoading &&
(viewModel.data == null &&
viewModel.likedTendersData == null)) {
return const Center(
child: CircularProgressIndicator(
color: AppColors.secondary50,
),
);
}
if (viewModel.errorMessage != null) {
return Center(child: Text(viewModel.errorMessage!));
}
Widget content;
if (viewModel.selectedStatus ==
YourTendersStrings.likeTenders &&
viewModel.likedTendersData != null) {
content = LikedDislikedTendersList(
data: viewModel.likedTendersData!,
status: TenderFeedback.liked.value,
isDesktop: true,
isMobile: false,
);
} else if (viewModel.selectedStatus ==
YourTendersStrings.dislikeTenders &&
viewModel.likedTendersData != null) {
content = LikedDislikedTendersList(
data: viewModel.likedTendersData!,
status: TenderFeedback.disliked.value,
isDesktop: true,
isMobile: false,
);
} else if (viewModel.data != null) {
content = TendersSubmitted(
approvedTenders: viewModel.data!,
isDesktop: true,
isMobile: false,
);
} else {
content = const Center(
child: Text(YourTendersStrings.noTenders),
);
}
return Column(
children: [
Expanded(child: content),
SizedBox(height: 10.0.h()),
_listPagesControll(context, viewModel),
SizedBox(height: 30.0.h()),
],
);
},
body: SafeArea(
child: Column(
children: [
const DesktopNavigationWidget(currentIndex: 1), // Tenders index
Expanded(
child: SizedBox(
width: 740,
child: Column(
children: [
SizedBox(height: 64.0.h()),
const TabletDesktopAppbar(
title: YourTendersStrings.yourTenders,
),
),
],
SizedBox(height: 20.0.h()),
const FilterButton(platformType: PlatformType.tabletDesktop),
Expanded(
child: Consumer<YourTendersViewModel>(
builder: (context, viewModel, child) {
if (viewModel.isLoading &&
(viewModel.data == null &&
viewModel.likedTendersData == null)) {
return const Center(
child: CircularProgressIndicator(
color: AppColors.secondary50,
),
);
}
if (viewModel.errorMessage != null) {
return Center(child: Text(viewModel.errorMessage!));
}
Widget content;
if (viewModel.selectedStatus ==
YourTendersStrings.likeTenders &&
viewModel.likedTendersData != null) {
content = LikedDislikedTendersList(
data: viewModel.likedTendersData!,
status: TenderFeedback.liked.value,
isDesktop: true,
isMobile: false,
);
} else if (viewModel.selectedStatus ==
YourTendersStrings.dislikeTenders &&
viewModel.likedTendersData != null) {
content = LikedDislikedTendersList(
data: viewModel.likedTendersData!,
status: TenderFeedback.disliked.value,
isDesktop: true,
isMobile: false,
);
} else if (viewModel.data != null) {
content = TendersSubmitted(
approvedTenders: viewModel.data!,
isDesktop: true,
isMobile: false,
);
} else {
content = const Center(
child: Text(YourTendersStrings.noTenders),
);
}
return Column(
children: [
Expanded(child: content),
SizedBox(height: 10.0.h()),
_listPagesControll(context, viewModel),
SizedBox(height: 30.0.h()),
],
);
},
),
),
],
),
),
),
),
],
],
),
),
);
}
@@ -38,71 +38,73 @@ class _YourTendersMobilePageState extends State<YourTendersMobilePage> {
return Scaffold(
backgroundColor: AppColors.backgroundColor,
appBar: appBar(context: context, title: YourTendersStrings.yourTenders),
body: Column(
children: [
const FilterButton(platformType: PlatformType.mobile),
Expanded(
child: Consumer<YourTendersViewModel>(
builder: (context, viewModel, child) {
if (viewModel.isLoading &&
(viewModel.data?.data?.tenders ?? []).isEmpty &&
(viewModel.likedTendersData?.data?.feedback ?? [])
.isEmpty) {
return const Center(
child: CircularProgressIndicator(
color: AppColors.secondary50,
),
);
}
if (viewModel.errorMessage != null) {
return Center(child: Text(viewModel.errorMessage!));
}
return Column(
children: [
if (viewModel.selectedStatus ==
YourTendersStrings.likeTenders &&
viewModel.likedTendersData != null)
Expanded(
child: LikedDislikedTendersList(
data: viewModel.likedTendersData!,
status: TenderFeedback.liked.value,
isDesktop: false,
isMobile: true,
),
)
else if (viewModel.selectedStatus ==
YourTendersStrings.dislikeTenders &&
viewModel.likedTendersData != null)
Expanded(
child: LikedDislikedTendersList(
data: viewModel.likedTendersData!,
status: TenderFeedback.disliked.value,
isDesktop: false,
isMobile: true,
),
)
else if (viewModel.data != null)
Expanded(
child: TendersSubmitted(
approvedTenders: viewModel.data!,
isDesktop: false,
isMobile: true,
),
)
else
const Expanded(
child: Center(
child: Text(YourTendersStrings.noTenders),
),
body: SafeArea(
child: Column(
children: [
const FilterButton(platformType: PlatformType.mobile),
Expanded(
child: Consumer<YourTendersViewModel>(
builder: (context, viewModel, child) {
if (viewModel.isLoading &&
(viewModel.data?.data?.tenders ?? []).isEmpty &&
(viewModel.likedTendersData?.data?.feedback ?? [])
.isEmpty) {
return const Center(
child: CircularProgressIndicator(
color: AppColors.secondary50,
),
],
);
},
);
}
if (viewModel.errorMessage != null) {
return Center(child: Text(viewModel.errorMessage!));
}
return Column(
children: [
if (viewModel.selectedStatus ==
YourTendersStrings.likeTenders &&
viewModel.likedTendersData != null)
Expanded(
child: LikedDislikedTendersList(
data: viewModel.likedTendersData!,
status: TenderFeedback.liked.value,
isDesktop: false,
isMobile: true,
),
)
else if (viewModel.selectedStatus ==
YourTendersStrings.dislikeTenders &&
viewModel.likedTendersData != null)
Expanded(
child: LikedDislikedTendersList(
data: viewModel.likedTendersData!,
status: TenderFeedback.disliked.value,
isDesktop: false,
isMobile: true,
),
)
else if (viewModel.data != null)
Expanded(
child: TendersSubmitted(
approvedTenders: viewModel.data!,
isDesktop: false,
isMobile: true,
),
)
else
const Expanded(
child: Center(
child: Text(YourTendersStrings.noTenders),
),
),
],
);
},
),
),
),
],
],
),
),
);
}
@@ -44,84 +44,86 @@ class _YourTendersTabletPageState extends State<YourTendersTabletPage>
backgroundColor: AppColors.backgroundColor,
appBar: tabletAppBar(title: YourTendersStrings.yourTenders, key: key),
drawer: const TabletNavigationWidget(currentIndex: 1),
body: Center(
child: SizedBox(
width: 720,
child: Column(
children: [
const SizedBox(height: 64.0),
Padding(
padding: EdgeInsets.symmetric(horizontal: 8.0.w()),
child: const TabletDesktopAppbar(
title: YourTendersStrings.yourTenders,
body: SafeArea(
child: Center(
child: SizedBox(
width: 720,
child: Column(
children: [
const SizedBox(height: 64.0),
Padding(
padding: EdgeInsets.symmetric(horizontal: 8.0.w()),
child: const TabletDesktopAppbar(
title: YourTendersStrings.yourTenders,
),
),
),
SizedBox(height: 24.0.h()),
const FilterButton(platformType: PlatformType.tabletDesktop),
Expanded(
child: Consumer<YourTendersViewModel>(
builder: (context, viewModel, child) {
if (viewModel.isLoading &&
(viewModel.data == null &&
viewModel.likedTendersData == null)) {
return const Center(
child: CircularProgressIndicator(
color: AppColors.secondary50,
),
SizedBox(height: 24.0.h()),
const FilterButton(platformType: PlatformType.tabletDesktop),
Expanded(
child: Consumer<YourTendersViewModel>(
builder: (context, viewModel, child) {
if (viewModel.isLoading &&
(viewModel.data == null &&
viewModel.likedTendersData == null)) {
return const Center(
child: CircularProgressIndicator(
color: AppColors.secondary50,
),
);
}
if (viewModel.errorMessage != null) {
return Center(child: Text(viewModel.errorMessage!));
}
Widget content;
if (viewModel.selectedStatus ==
YourTendersStrings.likeTenders &&
viewModel.likedTendersData != null) {
content = LikedDislikedTendersList(
data: viewModel.likedTendersData!,
status: TenderFeedback.liked.value,
isDesktop: false,
isMobile: false,
);
} else if (viewModel.selectedStatus ==
YourTendersStrings.dislikeTenders &&
viewModel.likedTendersData != null) {
content = LikedDislikedTendersList(
data: viewModel.likedTendersData!,
status: TenderFeedback.disliked.value,
isDesktop: false,
isMobile: false,
);
} else if (viewModel.data != null) {
content = TendersSubmitted(
approvedTenders: viewModel.data!,
isDesktop: false,
isMobile: false,
);
} else {
content = const Center(
child: Text(YourTendersStrings.noTenders),
);
}
return Column(
children: [
Expanded(child: content),
SizedBox(height: 10.0.h()),
_listPagesControll(context, viewModel),
const SizedBox(height: 30.0),
],
);
}
if (viewModel.errorMessage != null) {
return Center(child: Text(viewModel.errorMessage!));
}
Widget content;
if (viewModel.selectedStatus ==
YourTendersStrings.likeTenders &&
viewModel.likedTendersData != null) {
content = LikedDislikedTendersList(
data: viewModel.likedTendersData!,
status: TenderFeedback.liked.value,
isDesktop: false,
isMobile: false,
);
} else if (viewModel.selectedStatus ==
YourTendersStrings.dislikeTenders &&
viewModel.likedTendersData != null) {
content = LikedDislikedTendersList(
data: viewModel.likedTendersData!,
status: TenderFeedback.disliked.value,
isDesktop: false,
isMobile: false,
);
} else if (viewModel.data != null) {
content = TendersSubmitted(
approvedTenders: viewModel.data!,
isDesktop: false,
isMobile: false,
);
} else {
content = const Center(
child: Text(YourTendersStrings.noTenders),
);
}
return Column(
children: [
Expanded(child: content),
SizedBox(height: 10.0.h()),
_listPagesControll(context, viewModel),
const SizedBox(height: 30.0),
],
);
},
},
),
),
),
],
],
),
),
),
),