diff --git a/assets/icons/arrow-circle-left.svg b/assets/icons/arrow-circle-left.svg
new file mode 100644
index 0000000..2734ecf
--- /dev/null
+++ b/assets/icons/arrow-circle-left.svg
@@ -0,0 +1,4 @@
+
diff --git a/assets/icons/arrow-circle-right.svg b/assets/icons/arrow-circle-right.svg
new file mode 100644
index 0000000..0b689d0
--- /dev/null
+++ b/assets/icons/arrow-circle-right.svg
@@ -0,0 +1,4 @@
+
diff --git a/lib/core/constants/assets.dart b/lib/core/constants/assets.dart
index 28debfe..100370b 100644
--- a/lib/core/constants/assets.dart
+++ b/lib/core/constants/assets.dart
@@ -15,4 +15,6 @@ class AssetsManager {
static const closeCircle = 'assets/icons/close-circle.svg';
static const seFlag = 'assets/icons/SE.png';
static const location = 'assets/icons/location.svg';
+ static const arrowCircleLeft = 'assets/icons/arrow-circle-left.svg';
+ static const arrowCircleRight = 'assets/icons/arrow-circle-right.svg';
}
diff --git a/lib/views/tenders/tenders_screen.dart b/lib/views/tenders/tenders_screen.dart
index 15bdd52..0ed81b3 100644
--- a/lib/views/tenders/tenders_screen.dart
+++ b/lib/views/tenders/tenders_screen.dart
@@ -1,6 +1,8 @@
import 'package:flutter/material.dart';
+import 'package:flutter_svg/svg.dart';
import '../../common/widgets/bottom_navigation.dart';
+import '../../core/constants/assets.dart';
import '../../core/constants/colors.dart';
import '../../core/utils/size_config.dart';
import 'models/tender_model.dart';
@@ -42,7 +44,7 @@ class _TendersScreenState extends State
child: SingleChildScrollView(
child: Padding(
padding: EdgeInsets.symmetric(
- horizontal: 24.0.w(),
+ // horizontal: 24.0.w(),
vertical: 24.0.h(),
),
child: Column(
@@ -52,27 +54,43 @@ class _TendersScreenState extends State
MainTabBar(controller: controller),
SizedBox(height: 24.0.h()),
- SizedBox(
- width: double.infinity,
- height: 762.0.h(),
- child: PageView.builder(
- scrollDirection: Axis.horizontal,
- itemCount: sampleTenders.length,
- itemBuilder: (context, index) {
- final tender = sampleTenders[index];
-
- return TenderCard(
- date: tender.date,
- deadline: tender.deadline,
- title: tender.title,
- description: tender.description,
- tenderId: tender.tenderId,
- location: tender.location,
- country: tender.country,
- matchPercentage: tender.matchPercentage,
- );
- },
- ),
+ Stack(
+ children: [
+ SizedBox(
+ width: double.infinity,
+ height: 762.0.h(),
+ child: PageView.builder(
+ scrollDirection: Axis.horizontal,
+ itemCount: sampleTenders.length,
+ itemBuilder: (context, index) {
+ final tender = sampleTenders[index];
+ return TenderCard(
+ date: tender.date,
+ deadline: tender.deadline,
+ title: tender.title,
+ description: tender.description,
+ tenderId: tender.tenderId,
+ location: tender.location,
+ country: tender.country,
+ matchPercentage: tender.matchPercentage,
+ );
+ },
+ ),
+ ),
+ Positioned(
+ top: 237.0.h(),
+ bottom: 366.0.h(),
+ left: 9.0.w(),
+ right: 9.0.w(),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ SvgPicture.asset(AssetsManager.arrowCircleLeft),
+ SvgPicture.asset(AssetsManager.arrowCircleRight),
+ ],
+ ),
+ ),
+ ],
),
],
),
diff --git a/lib/views/tenders/widgets/main_tab_bar.dart b/lib/views/tenders/widgets/main_tab_bar.dart
index db954a2..6b3d2cc 100644
--- a/lib/views/tenders/widgets/main_tab_bar.dart
+++ b/lib/views/tenders/widgets/main_tab_bar.dart
@@ -19,6 +19,7 @@ class _MainTabBarState extends State {
return Container(
width: double.infinity,
height: 51.0.h(),
+ margin: EdgeInsets.symmetric(horizontal: 24.0.w()),
padding: EdgeInsets.symmetric(horizontal: 8.0.w(), vertical: 8.0.h()),
decoration: BoxDecoration(
color: AppColors.grey10,
diff --git a/lib/views/tenders/widgets/tender_action_buttons.dart b/lib/views/tenders/widgets/tender_action_buttons.dart
new file mode 100644
index 0000000..34c2d31
--- /dev/null
+++ b/lib/views/tenders/widgets/tender_action_buttons.dart
@@ -0,0 +1,52 @@
+import 'package:flutter/material.dart';
+import 'package:flutter_svg/svg.dart';
+
+import '../../../core/constants/assets.dart';
+import '../../../core/utils/size_config.dart';
+
+class TenderActionButtons extends StatelessWidget {
+ final VoidCallback? onLike;
+ final VoidCallback? onDislike;
+ final VoidCallback? onClose;
+ final bool isLiked;
+ final bool isDisliked;
+
+ const TenderActionButtons({
+ super.key,
+ this.onLike,
+ this.onDislike,
+ this.onClose,
+ this.isLiked = false,
+ this.isDisliked = false,
+ });
+
+ @override
+ Widget build(BuildContext context) {
+ return Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ children: [
+ SizedBox(width: 16.0.w()),
+
+ // Dislike button
+ GestureDetector(
+ onTap: onDislike,
+ child: SvgPicture.asset(AssetsManager.dislike),
+ ),
+
+ SizedBox(width: 16.0.w()),
+
+ // Close button
+ GestureDetector(
+ onTap: onClose,
+ child: SvgPicture.asset(AssetsManager.closeCircle),
+ ),
+ SizedBox(width: 16.0.w()),
+ // Like button
+ GestureDetector(
+ onTap: onLike,
+ child: SvgPicture.asset(AssetsManager.like),
+ ),
+ ],
+ );
+ }
+}
diff --git a/lib/views/tenders/widgets/tender_app_bar.dart b/lib/views/tenders/widgets/tender_app_bar.dart
index 2014d31..a86769d 100644
--- a/lib/views/tenders/widgets/tender_app_bar.dart
+++ b/lib/views/tenders/widgets/tender_app_bar.dart
@@ -10,24 +10,27 @@ class TenderAppBar extends StatelessWidget {
@override
Widget build(BuildContext context) {
- return Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Text(
- AppStrings.tendersTitle,
- style: TextStyle(
- fontSize: 20.0.sp(),
- fontWeight: FontWeight.w600,
- color: AppColors.grey70,
+ return Padding(
+ padding: EdgeInsets.symmetric(horizontal: 24.0.w()),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ Text(
+ AppStrings.tendersTitle,
+ style: TextStyle(
+ fontSize: 20.0.sp(),
+ fontWeight: FontWeight.w600,
+ color: AppColors.grey70,
+ ),
),
- ),
- Image.asset(
- AssetsManager.tenderLogo,
- width: 59.0.w(),
- height: 28.0.h(),
- fit: BoxFit.cover,
- ),
- ],
+ Image.asset(
+ AssetsManager.tenderLogo,
+ width: 59.0.w(),
+ height: 28.0.h(),
+ fit: BoxFit.cover,
+ ),
+ ],
+ ),
);
}
}
diff --git a/lib/views/tenders/widgets/tender_card.dart b/lib/views/tenders/widgets/tender_card.dart
index 430e81c..5c018c1 100644
--- a/lib/views/tenders/widgets/tender_card.dart
+++ b/lib/views/tenders/widgets/tender_card.dart
@@ -4,6 +4,7 @@ import 'package:flutter_svg/svg.dart';
import '../../../core/constants/assets.dart';
import '../../../core/constants/colors.dart';
import '../../../core/utils/size_config.dart';
+import 'tender_action_buttons.dart';
class TenderCard extends StatelessWidget {
final String date;
@@ -220,7 +221,7 @@ class TenderCard extends StatelessWidget {
),
),
- // Apply button
+ // See More button
GestureDetector(
onTap: onApply,
child: Container(
@@ -261,51 +262,3 @@ class TenderCard extends StatelessWidget {
);
}
}
-
-// Action buttons row widget
-class TenderActionButtons extends StatelessWidget {
- final VoidCallback? onLike;
- final VoidCallback? onDislike;
- final VoidCallback? onClose;
- final bool isLiked;
- final bool isDisliked;
-
- const TenderActionButtons({
- super.key,
- this.onLike,
- this.onDislike,
- this.onClose,
- this.isLiked = false,
- this.isDisliked = false,
- });
-
- @override
- Widget build(BuildContext context) {
- return Row(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- SizedBox(width: 16.0.w()),
-
- // Dislike button
- GestureDetector(
- onTap: onDislike,
- child: SvgPicture.asset(AssetsManager.dislike),
- ),
-
- SizedBox(width: 16.0.w()),
-
- // Close button
- GestureDetector(
- onTap: onClose,
- child: SvgPicture.asset(AssetsManager.closeCircle),
- ),
- SizedBox(width: 16.0.w()),
- // Like button
- GestureDetector(
- onTap: onLike,
- child: SvgPicture.asset(AssetsManager.like),
- ),
- ],
- );
- }
-}