added new design for tenders desktop

This commit is contained in:
llsajjad
2025-09-20 23:09:00 +03:30
parent fae6509698
commit 8a289f2d05
9 changed files with 199 additions and 50 deletions
+20 -16
View File
@@ -26,7 +26,7 @@ class TenderCard extends StatelessWidget {
Container(
width: double.infinity,
margin: EdgeInsets.symmetric(horizontal: 16.0.w()),
height: 587.0.h(),
height: isDesktop ? 290.0.h() : 587.0.h(),
decoration: BoxDecoration(
color: AppColors.grey0,
borderRadius: BorderRadius.circular(12),
@@ -56,38 +56,41 @@ class TenderCard extends StatelessWidget {
// Deadline badge
_deadlineBadge(),
SizedBox(height: 12.0.h()),
isDesktop ? Container() : SizedBox(height: 12.0.h()),
// Approval status badge
// _approvalStatusBadge(),
SizedBox(height: 12.0.h()),
SizedBox(height: isDesktop ? 6.0.h() : 12.0.h()),
// Title
_tenderTitle(),
SizedBox(height: 8.0.h()),
SizedBox(height: isDesktop ? 4.0.h() : 8.0.h()),
// Description
_tenderDescription(),
SizedBox(height: 12.0.h()),
isDesktop ? Container() : SizedBox(height: 12.0.h()),
// Tender ID
_idText(),
isDesktop ? Container() : _idText(),
],
),
),
const Spacer(),
// Bottom section with progress and actions
Padding(
padding: EdgeInsets.all(16.0.w()),
padding: EdgeInsets.symmetric(
vertical: isDesktop ? 8.0.w() : 16.0.w(),
horizontal: 16.0.w(),
),
child: Column(
children: [
// Match percentage
_matchPercentage(),
SizedBox(height: 8.0.h()),
SizedBox(height: isDesktop ? 4.0.h() : 8.0.h()),
// Progress bar
_progressBar(),
SizedBox(height: 16.0.h()),
SizedBox(height: isDesktop ? 8.0.h() : 16.0.h()),
// Location and apply button
Row(
@@ -105,7 +108,7 @@ class TenderCard extends StatelessWidget {
],
),
),
SizedBox(height: 72.0.h()),
SizedBox(height: isDesktop ? 20.0.h() : 72.0.h()),
if (!isDesktop) TenderActionButtonsRow(tender: tender),
],
);
@@ -158,10 +161,11 @@ class TenderCard extends StatelessWidget {
Widget _tenderTitle() {
return Text(
tender.title ?? '',
maxLines: isDesktop ? 2 : 4,
style: TextStyle(
color: AppColors.grey80,
fontSize: 16.0.sp(),
fontWeight: FontWeight.w600,
fontWeight: isDesktop ? FontWeight.w500 : FontWeight.w600,
),
);
}
@@ -169,11 +173,11 @@ class TenderCard extends StatelessWidget {
Widget _tenderDescription() {
return Text(
tender.description ?? '',
maxLines: 4,
maxLines: isDesktop ? 2 : 4,
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: AppColors.grey70,
fontSize: 16.0.sp(),
fontSize: isDesktop ? 14.0.sp() : 16.0.sp(),
fontWeight: FontWeight.w400,
height: 1.5,
),
@@ -199,15 +203,15 @@ class TenderCard extends StatelessWidget {
TenderDetailsStrings.tenderMatchProfile,
style: TextStyle(
color: AppColors.grey80,
fontSize: 14.0.sp(),
fontWeight: FontWeight.w500,
fontSize: isDesktop ? 12.0.sp() : 14.0.sp(),
fontWeight: isDesktop ? FontWeight.w400 : FontWeight.w500,
),
),
Text(
'${45}%',
style: TextStyle(
color: AppColors.secondaryTextColor,
fontSize: 16.0.sp(),
fontSize: isDesktop ? 12.0.sp() : 16.0.sp(),
fontWeight: FontWeight.w600,
),
),