fixed your tenders filters and service and home your tneders use your tenders service
This commit is contained in:
@@ -7,6 +7,8 @@ import 'package:tm_app/views/your_tenders/pages/your_tenders_desktop_page.dart';
|
||||
import 'package:tm_app/views/your_tenders/pages/your_tenders_mobile_page.dart';
|
||||
import 'package:tm_app/views/your_tenders/pages/your_tenders_tablet_page.dart';
|
||||
|
||||
import '../../../data/services/model/request_models/get_tenders_request_model/get_tenders_request_model.dart';
|
||||
|
||||
class YourTendersScreen extends StatefulWidget {
|
||||
const YourTendersScreen({super.key});
|
||||
|
||||
@@ -21,12 +23,8 @@ class _YourTendersScreenState extends State<YourTendersScreen> {
|
||||
super.initState();
|
||||
viewModel = context.read<YourTendersViewModel>();
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
viewModel.getTenders(
|
||||
limit: 10,
|
||||
offset: 0,
|
||||
createdFrom: '',
|
||||
createdTo: '',
|
||||
);
|
||||
final requestModel = GetTendersRequestModel();
|
||||
viewModel.getTenders(requestModel: requestModel);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -1,65 +0,0 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:tm_app/core/constants/assets.dart';
|
||||
import 'package:tm_app/core/theme/colors.dart';
|
||||
import 'package:tm_app/views/your_tenders/widgets/tender_card.dart';
|
||||
|
||||
import '../../../data/services/model/your_tender_model/your_tender_model.dart';
|
||||
|
||||
class ApprovedTenders extends StatelessWidget {
|
||||
const ApprovedTenders({required this.tendersSubmitted,required this.isDesktop, super.key});
|
||||
|
||||
final List<YourTenderModel> tendersSubmitted;
|
||||
final bool isDesktop;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return ListView.builder(
|
||||
padding: const EdgeInsets.only(top: 20),
|
||||
itemCount: tendersSubmitted.length,
|
||||
itemBuilder: (context, index) {
|
||||
final tender = tendersSubmitted[index];
|
||||
return TenderCard(
|
||||
date: tender.date,
|
||||
title: tender.title,
|
||||
description: tender.description,
|
||||
location: tender.location,
|
||||
countryFlag: tender.countryFlag,
|
||||
status: tender.status,
|
||||
countryCode: '',
|
||||
projectStatus: tender.projectStatus,
|
||||
isDesktop: isDesktop,
|
||||
backgroundColor:
|
||||
tender.status == 'Won'
|
||||
? AppColors.green0
|
||||
: tender.status == 'Completed'
|
||||
? AppColors.grey0
|
||||
: AppColors.red0,
|
||||
borderColor:
|
||||
tender.status == 'Won'
|
||||
? AppColors.green10
|
||||
: tender.status == 'Completed'
|
||||
? AppColors.grey30
|
||||
: AppColors.red10,
|
||||
statusIcon:
|
||||
tender.status == 'Won'
|
||||
? AssetsManager.tickCircle
|
||||
: tender.status == 'Completed'
|
||||
? null
|
||||
: AssetsManager.closeCircle,
|
||||
statusCardColor:
|
||||
tender.status == 'Won'
|
||||
? AppColors.green20
|
||||
: tender.status == 'Completed'
|
||||
? AppColors.blue0
|
||||
: AppColors.red10,
|
||||
statusTextColor:
|
||||
tender.status == 'Won'
|
||||
? AppColors.green30
|
||||
: tender.status == 'Completed'
|
||||
? AppColors.cyanTeal
|
||||
: AppColors.red20,
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -80,13 +80,7 @@ class _LikedDislikedTendersListState extends State<LikedDislikedTendersList> {
|
||||
return Padding(
|
||||
padding: EdgeInsets.only(bottom: 16.0.h()),
|
||||
child: TenderCard(
|
||||
date: feedback.tender!.publicationDate?.toString() ?? '',
|
||||
title: feedback.tender!.title ?? '',
|
||||
description: feedback.tender!.description ?? '',
|
||||
location: feedback.tender!.countryCode ?? '',
|
||||
countryCode: feedback.tender!.countryCode ?? '',
|
||||
status: feedback.tender!.status ?? '',
|
||||
projectStatus: feedback.tender!.procurementTypeCode!,
|
||||
tender: feedback.tender!,
|
||||
isDesktop: widget.isDesctop,
|
||||
),
|
||||
);
|
||||
|
||||
@@ -2,47 +2,47 @@ import 'package:country_flags/country_flags.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/svg.dart';
|
||||
import 'package:tm_app/core/utils/date_utils.dart';
|
||||
import 'package:tm_app/data/services/model/tender_data/tender_data.dart';
|
||||
|
||||
import '../../../core/constants/assets.dart';
|
||||
import '../../../core/theme/colors.dart';
|
||||
import '../../../core/utils/size_config.dart';
|
||||
|
||||
class TenderCard extends StatelessWidget {
|
||||
final String date;
|
||||
final String title;
|
||||
final String description;
|
||||
final String location;
|
||||
final String countryFlag;
|
||||
final String status;
|
||||
final String projectStatus;
|
||||
final Color? backgroundColor;
|
||||
final Color? borderColor;
|
||||
final String? statusIcon;
|
||||
final Color? statusCardColor;
|
||||
final Color? statusTextColor;
|
||||
final String countryCode;
|
||||
final bool isDesktop;
|
||||
final TenderData tender;
|
||||
|
||||
const TenderCard({
|
||||
required this.date,
|
||||
required this.title,
|
||||
required this.description,
|
||||
required this.location,
|
||||
required this.countryCode,
|
||||
required this.isDesktop,
|
||||
this.countryFlag = 'assets/icons/SE.png',
|
||||
this.status = 'Completed',
|
||||
this.projectStatus = 'Self Control',
|
||||
this.backgroundColor,
|
||||
this.borderColor,
|
||||
this.statusIcon,
|
||||
this.statusCardColor,
|
||||
this.statusTextColor,
|
||||
super.key,
|
||||
});
|
||||
const TenderCard({required this.isDesktop, required this.tender, super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
// Determine styling based on tender status
|
||||
Color backgroundColor;
|
||||
Color borderColor;
|
||||
String? statusIcon;
|
||||
Color statusCardColor;
|
||||
Color statusTextColor;
|
||||
|
||||
if (tender.status == 'Won') {
|
||||
backgroundColor = AppColors.green0;
|
||||
borderColor = AppColors.green10;
|
||||
statusIcon = AssetsManager.tickCircle;
|
||||
statusCardColor = AppColors.green20;
|
||||
statusTextColor = AppColors.green30;
|
||||
} else if (tender.status == 'submitted') {
|
||||
backgroundColor = AppColors.grey0;
|
||||
borderColor = AppColors.grey30;
|
||||
statusIcon = null;
|
||||
statusCardColor = AppColors.green20;
|
||||
statusTextColor = AppColors.green30;
|
||||
} else {
|
||||
backgroundColor = AppColors.red0.withValues(alpha: 0.2);
|
||||
borderColor = AppColors.red0;
|
||||
statusIcon = AssetsManager.closeCircle;
|
||||
statusCardColor = AppColors.red0;
|
||||
statusTextColor = AppColors.red10;
|
||||
}
|
||||
|
||||
return Container(
|
||||
height: isDesktop ? 182.0.h() : 240.0.h(),
|
||||
width: double.infinity,
|
||||
@@ -52,9 +52,9 @@ class TenderCard extends StatelessWidget {
|
||||
bottom: 24.0.h(),
|
||||
),
|
||||
decoration: BoxDecoration(
|
||||
color: backgroundColor ?? AppColors.grey0,
|
||||
color: backgroundColor,
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
border: Border.all(color: borderColor ?? AppColors.borderColor),
|
||||
border: Border.all(color: borderColor),
|
||||
),
|
||||
child: Padding(
|
||||
padding: EdgeInsets.all(16.0.w()),
|
||||
@@ -67,7 +67,7 @@ class TenderCard extends StatelessWidget {
|
||||
children: [
|
||||
// Date
|
||||
Text(
|
||||
unixToDate(int.parse(date)),
|
||||
unixToDate(int.parse(tender.publicationDate!.toString())),
|
||||
style: TextStyle(
|
||||
color: AppColors.grey60,
|
||||
fontSize: 12.0.sp(),
|
||||
@@ -81,26 +81,26 @@ class TenderCard extends StatelessWidget {
|
||||
vertical: 4.0.h(),
|
||||
),
|
||||
decoration: BoxDecoration(
|
||||
color: statusCardColor ?? AppColors.green20,
|
||||
color: statusCardColor,
|
||||
borderRadius: BorderRadius.circular(8),
|
||||
),
|
||||
child: Row(
|
||||
children: [
|
||||
if (statusIcon != null)
|
||||
SvgPicture.asset(
|
||||
statusIcon!,
|
||||
statusIcon,
|
||||
width: 16.0.w(),
|
||||
height: 16.0.h(),
|
||||
colorFilter: ColorFilter.mode(
|
||||
statusTextColor ?? AppColors.green30,
|
||||
statusTextColor,
|
||||
BlendMode.srcIn,
|
||||
),
|
||||
),
|
||||
SizedBox(width: 4.0.w()),
|
||||
Text(
|
||||
status,
|
||||
tender.status!,
|
||||
style: TextStyle(
|
||||
color: statusTextColor ?? AppColors.green30,
|
||||
color: statusTextColor,
|
||||
fontSize: 12.0.sp(),
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
@@ -114,7 +114,7 @@ class TenderCard extends StatelessWidget {
|
||||
|
||||
// Title
|
||||
Text(
|
||||
title,
|
||||
tender.title!,
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: TextStyle(
|
||||
@@ -128,7 +128,7 @@ class TenderCard extends StatelessWidget {
|
||||
|
||||
// Description
|
||||
Text(
|
||||
description,
|
||||
tender.description!,
|
||||
maxLines: isDesktop ? 2 : 3,
|
||||
style: TextStyle(
|
||||
color: AppColors.grey70,
|
||||
@@ -154,7 +154,7 @@ class TenderCard extends StatelessWidget {
|
||||
),
|
||||
SizedBox(width: 4.0.w()),
|
||||
Text(
|
||||
location,
|
||||
tender.countryCode!,
|
||||
style: TextStyle(
|
||||
color: AppColors.grey80,
|
||||
fontSize: 12.0.sp(),
|
||||
@@ -167,7 +167,7 @@ class TenderCard extends StatelessWidget {
|
||||
width: 32.0.w(),
|
||||
height: 21.0.h(),
|
||||
child: CountryFlag.fromCountryCode(
|
||||
countryCode,
|
||||
tender.countryCode!,
|
||||
shape: RoundedRectangle(4),
|
||||
),
|
||||
),
|
||||
@@ -187,7 +187,7 @@ class TenderCard extends StatelessWidget {
|
||||
border: Border.all(color: AppColors.grey40),
|
||||
),
|
||||
child: Text(
|
||||
projectStatus,
|
||||
tender.procurementTypeCode!,
|
||||
style: TextStyle(
|
||||
color: AppColors.grey60,
|
||||
fontSize: 12.0.sp(),
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:tm_app/core/constants/assets.dart';
|
||||
import 'package:tm_app/core/theme/colors.dart';
|
||||
import 'package:tm_app/core/utils/size_config.dart';
|
||||
import 'package:tm_app/view_models/your_tenders_view_model.dart';
|
||||
@@ -78,45 +77,8 @@ class _TendersSubmittedState extends State<TendersSubmitted> {
|
||||
if (index < tenders.length) {
|
||||
final tender = tenders[index];
|
||||
return TenderCard(
|
||||
date: tender.createdAt!.toString(),
|
||||
title: tender.tender!.title!,
|
||||
description: tender.tender!.description!,
|
||||
location: tender.tender!.countryCode!,
|
||||
countryFlag: AssetsManager.seFlag,
|
||||
status: tender.status,
|
||||
countryCode: tender.tender!.countryCode!,
|
||||
projectStatus: tender.tender!.status!,
|
||||
tender: tender.tender!,
|
||||
isDesktop: widget.isDesktop,
|
||||
backgroundColor:
|
||||
tender.status == 'Won'
|
||||
? AppColors.green0
|
||||
: tender.status == 'submitted'
|
||||
? AppColors.grey0
|
||||
: AppColors.red0.withValues(alpha: 0.2),
|
||||
borderColor:
|
||||
tender.status == 'Won'
|
||||
? AppColors.green10
|
||||
: tender.status == 'submitted'
|
||||
? AppColors.grey30
|
||||
: AppColors.red0,
|
||||
statusIcon:
|
||||
tender.status == 'Won'
|
||||
? AssetsManager.tickCircle
|
||||
: tender.status == 'submitted'
|
||||
? null
|
||||
: AssetsManager.closeCircle,
|
||||
statusCardColor:
|
||||
tender.status == 'Won'
|
||||
? AppColors.green20
|
||||
: tender.status == 'submitted'
|
||||
? AppColors.green20
|
||||
: AppColors.red0,
|
||||
statusTextColor:
|
||||
tender.status == 'Won'
|
||||
? AppColors.green30
|
||||
: tender.status == 'submitted'
|
||||
? AppColors.green30
|
||||
: AppColors.red10,
|
||||
);
|
||||
} else {
|
||||
return Padding(
|
||||
|
||||
Reference in New Issue
Block a user