check web and tablet for logic

This commit is contained in:
amirrezaghabeli
2025-08-23 15:22:28 +03:30
parent b00ba07122
commit 14ab9a75ca
27 changed files with 569 additions and 282 deletions
@@ -1,64 +1,63 @@
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/data/services/model/tender_approvals_response/tender_approvals_response.dart';
import 'package:tm_app/views/your_tenders/widgets/tender_card.dart';
class ApprovedTenders extends StatelessWidget {
const ApprovedTenders({required this.approvedTenders, super.key});
import '../../../data/services/model/your_tender_model/your_tender_model.dart';
final TenderApprovalsResponse approvedTenders;
class ApprovedTenders extends StatelessWidget {
const ApprovedTenders({required this.tendersSubmitted, super.key});
final List<YourTenderModel> tendersSubmitted;
@override
Widget build(BuildContext context) {
return approvedTenders.data == null
? const Center(child: Text('No approved projects yet.'))
: ListView.builder(
padding: const EdgeInsets.only(top: 20),
itemCount: approvedTenders.data!.length,
itemBuilder: (context, index) {
final tender = approvedTenders.data![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!,
backgroundColor:
tender.status == 'Won'
? AppColors.green0
: tender.status == 'approved'
? AppColors.grey0
: AppColors.red0.withValues(alpha: 0.2),
borderColor:
tender.status == 'Won'
? AppColors.green10
: tender.status == 'approved'
? AppColors.grey30
: AppColors.red0,
statusIcon:
tender.status == 'Won'
? AssetsManager.tickCircle
: tender.status == 'approved'
? null
: AssetsManager.closeCircle,
statusCardColor:
tender.status == 'Won'
? AppColors.green20
: tender.status == 'approved'
? AppColors.green20
: AppColors.red0,
statusTextColor:
tender.status == 'Won'
? AppColors.green30
: tender.status == 'approved'
? AppColors.green30
: AppColors.red10,
);
},
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,
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,
);
},
);
}
}
@@ -0,0 +1,33 @@
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:go_router/go_router.dart';
import 'package:tm_app/core/utils/size_config.dart';
import '../../../core/constants/assets.dart';
import '../../../core/constants/strings.dart';
import '../../../core/theme/colors.dart';
class TabletDesktopAppbar extends StatelessWidget {
const TabletDesktopAppbar({super.key});
@override
Widget build(BuildContext context) {
return Row(
children: [
InkWell(
onTap: () => context.pop(),
child: SvgPicture.asset(AssetsManager.arrowLeft),
),
SizedBox(width: 8.0.w()),
Text(
AppStrings.yourTendersTitle,
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.w600,
color: AppColors.grey70,
),
),
],
);
}
}
@@ -1,62 +1,65 @@
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/data/services/model/your_tender_model/your_tender_model.dart';
import 'package:tm_app/views/your_tenders/widgets/tender_card.dart';
class TendersSubmitted extends StatelessWidget {
const TendersSubmitted({required this.tendersSubmitted, super.key});
import '../../../data/services/model/tender_approvals_response/tender_approvals_response.dart';
final List<YourTenderModel> tendersSubmitted;
class TendersSubmitted extends StatelessWidget {
const TendersSubmitted({required this.approvedTenders, super.key});
final TenderApprovalsResponse approvedTenders;
@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,
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,
return approvedTenders.data == null
? const Center(child: Text('No approved projects yet.'))
: ListView.builder(
padding: const EdgeInsets.only(top: 20),
itemCount: approvedTenders.data!.length,
itemBuilder: (context, index) {
final tender = approvedTenders.data![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!,
backgroundColor:
tender.status == 'Won'
? AppColors.green0
: tender.status == 'approved'
? AppColors.grey0
: AppColors.red0.withValues(alpha: 0.2),
borderColor:
tender.status == 'Won'
? AppColors.green10
: tender.status == 'approved'
? AppColors.grey30
: AppColors.red0,
statusIcon:
tender.status == 'Won'
? AssetsManager.tickCircle
: tender.status == 'approved'
? null
: AssetsManager.closeCircle,
statusCardColor:
tender.status == 'Won'
? AppColors.green20
: tender.status == 'approved'
? AppColors.green20
: AppColors.red0,
statusTextColor:
tender.status == 'Won'
? AppColors.green30
: tender.status == 'approved'
? AppColors.green30
: AppColors.red10,
);
},
);
},
);
}
}