merge branches

This commit is contained in:
amirrezaghabeli
2025-08-18 08:28:18 +03:30
parent 0a54b613cd
commit 36f66bfca5
48 changed files with 2348 additions and 613 deletions
@@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:tm_app/core/theme/colors.dart';
import 'package:tm_app/data/services/model/tender/tender_model.dart';
import 'package:tm_app/data/services/model/tender_data/tender_data.dart';
import '../../../core/constants/assets.dart';
import '../../../core/utils/size_config.dart';
@@ -14,7 +14,7 @@ class MainTendersSlider extends StatefulWidget {
this.isDesktop = false,
});
final bool isDesktop;
final List<TenderModel> tenders;
final List<TenderData> tenders;
@override
State<MainTendersSlider> createState() => _MainTendersSliderState();
@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:provider/provider.dart';
import 'package:tm_app/core/constants/strings.dart';
import 'package:tm_app/data/services/model/tender/tender_model.dart';
import 'package:tm_app/data/services/model/tender_data/tender_data.dart';
import 'package:tm_app/view_models/tenders_view_model.dart';
import '../../../core/constants/assets.dart';
@@ -10,7 +10,7 @@ import '../../../core/theme/colors.dart';
import '../../../core/utils/size_config.dart';
class TenderActionButtonsRow extends StatelessWidget {
final TenderModel tender;
final TenderData tender;
final bool isDesktop;
const TenderActionButtonsRow({
@@ -48,7 +48,7 @@ class TenderActionButtonsRow extends StatelessWidget {
child: InkWell(
splashColor: Colors.transparent,
onTap: () {
viewModel.toggleReject(tender);
// viewModel.toggleReject(tender);
},
child: Column(
children: [
@@ -59,9 +59,10 @@ class TenderActionButtonsRow extends StatelessWidget {
shape: BoxShape.circle,
border: Border.all(
color:
tender.rejected ?? false
? AppColors.errorColor
: AppColors.grey60,
// tender.rejected ?? false
// ? AppColors.errorColor
// :
AppColors.grey60,
width: 1.5.w(),
),
),
@@ -69,9 +70,10 @@ class TenderActionButtonsRow extends StatelessWidget {
child: Icon(
Icons.close,
color:
tender.rejected ?? false
? AppColors.errorColor
: AppColors.grey60,
// tender.rejected ?? false
// ? AppColors.errorColor
// :
AppColors.grey60,
size: 16,
),
),
@@ -83,9 +85,10 @@ class TenderActionButtonsRow extends StatelessWidget {
fontSize: 12.0.sp(),
fontWeight: FontWeight.w400,
color:
tender.rejected ?? false
? AppColors.errorColor
: AppColors.grey60,
// tender.rejected ?? false
// ? AppColors.errorColor
// :
AppColors.grey60,
),
),
],
@@ -100,7 +103,7 @@ class TenderActionButtonsRow extends StatelessWidget {
child: InkWell(
splashColor: Colors.transparent,
onTap: () {
viewModel.toggleSubmit(tender);
// viewModel.toggleSubmit(tender);
},
child: Column(
children: [
@@ -111,9 +114,10 @@ class TenderActionButtonsRow extends StatelessWidget {
shape: BoxShape.circle,
border: Border.all(
color:
tender.submitted ?? false
? AppColors.successColor
: AppColors.grey60,
// tender.submitted ?? false
// ? AppColors.successColor
// :
AppColors.grey60,
width: 1.5.w(),
),
),
@@ -121,9 +125,10 @@ class TenderActionButtonsRow extends StatelessWidget {
child: SvgPicture.asset(
AssetsManager.tick,
colorFilter: ColorFilter.mode(
tender.submitted ?? false
? AppColors.successColor
: AppColors.grey60,
// tender.submitted ?? false
// ? AppColors.successColor
// :
AppColors.grey60,
BlendMode.srcATop,
),
),
@@ -136,9 +141,10 @@ class TenderActionButtonsRow extends StatelessWidget {
fontSize: 12.0.sp(),
fontWeight: FontWeight.w400,
color:
tender.submitted ?? false
? AppColors.successColor
: AppColors.grey60,
// tender.submitted ?? false
// ? AppColors.successColor
// :
AppColors.grey60,
),
),
],
@@ -153,7 +159,7 @@ class TenderActionButtonsRow extends StatelessWidget {
child: InkWell(
splashColor: Colors.transparent,
onTap: () {
viewModel.toggleDislike(tender);
// viewModel.toggleDislike(tender);
},
child: Column(
children: [
@@ -163,9 +169,10 @@ class TenderActionButtonsRow extends StatelessWidget {
fit: BoxFit.cover,
AssetsManager.dislike,
colorFilter: ColorFilter.mode(
tender.disliked ?? false
? AppColors.errorColor
: AppColors.grey50,
// tender.disliked ?? false
// ? AppColors.errorColor
// :
AppColors.grey50,
BlendMode.srcATop,
),
),
@@ -177,9 +184,10 @@ class TenderActionButtonsRow extends StatelessWidget {
fontSize: 12.0.sp(),
fontWeight: FontWeight.w400,
color:
tender.disliked ?? false
? AppColors.errorColor
: AppColors.grey50,
// tender.disliked ?? false
// ? AppColors.errorColor
// :
AppColors.grey50,
),
),
],
@@ -194,7 +202,7 @@ class TenderActionButtonsRow extends StatelessWidget {
child: InkWell(
splashColor: Colors.transparent,
onTap: () {
viewModel.toggleLike(tender);
// viewModel.toggleLike(tender);
},
child: Column(
children: [
@@ -204,9 +212,10 @@ class TenderActionButtonsRow extends StatelessWidget {
fit: BoxFit.cover,
AssetsManager.like,
colorFilter: ColorFilter.mode(
tender.liked ?? false
? AppColors.successColor
: AppColors.grey50,
// tender.liked ?? false
// ? AppColors.successColor
// :
AppColors.grey50,
BlendMode.srcATop,
),
),
@@ -218,9 +227,10 @@ class TenderActionButtonsRow extends StatelessWidget {
fontSize: 12.0.sp(),
fontWeight: FontWeight.w400,
color:
tender.liked ?? false
? AppColors.successColor
: AppColors.grey50,
// tender.liked ?? false
// ? AppColors.successColor
// :
AppColors.grey50,
),
),
],
+11 -10
View File
@@ -1,16 +1,17 @@
import 'package:flutter/material.dart';
import 'package:flutter/material.dart' hide DateUtils;
import 'package:flutter_svg/svg.dart';
import 'package:tm_app/core/constants/strings.dart';
import 'package:tm_app/core/routes/app_routes.dart';
import 'package:tm_app/data/services/model/tender/tender_model.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/date_utils.dart';
import '../../../core/utils/size_config.dart';
import 'tender_action_buttons_row.dart';
class TenderCard extends StatelessWidget {
final TenderModel tender;
final TenderData tender;
final bool isDesktop;
const TenderCard({required this.tender, super.key, this.isDesktop = false});
@@ -104,7 +105,7 @@ class TenderCard extends StatelessWidget {
Widget _dateText() {
return Text(
tender.createdTime ?? '',
DateUtils.unixToDate(tender.publicationDate ?? 0),
style: TextStyle(
color: AppColors.grey60,
fontSize: 12.0.sp(),
@@ -134,7 +135,7 @@ class TenderCard extends StatelessWidget {
),
),
Text(
tender.deadline ?? '',
DateUtils.unixToDate(tender.tenderDeadline ?? 0),
style: TextStyle(
color: AppColors.grey80,
fontSize: 14.0.sp(),
@@ -171,7 +172,7 @@ class TenderCard extends StatelessWidget {
Widget _idText() {
return Text(
tender.tenderId ?? '',
tender.id ?? '',
style: TextStyle(
color: AppColors.grey,
fontSize: 14.0.sp(),
@@ -193,7 +194,7 @@ class TenderCard extends StatelessWidget {
),
),
Text(
'${tender.profileMatch ?? 0}%',
'${45}%',
style: TextStyle(
color: AppColors.secondaryTextColor,
fontSize: 16.0.sp(),
@@ -214,7 +215,7 @@ class TenderCard extends StatelessWidget {
),
child: FractionallySizedBox(
alignment: Alignment.centerLeft,
widthFactor: (tender.profileMatch ?? 0) / 100,
widthFactor: (45) / 100,
child: Container(
decoration: BoxDecoration(
color: AppColors.secondary50,
@@ -232,7 +233,7 @@ class TenderCard extends StatelessWidget {
SvgPicture.asset(AssetsManager.location),
SizedBox(width: 4.0.w()),
Text(
tender.location ?? '',
tender.countryCode ?? '',
style: TextStyle(
color: AppColors.grey80,
fontSize: 14.0.sp(),
@@ -250,7 +251,7 @@ class TenderCard extends StatelessWidget {
Widget _seeMoreButton(BuildContext context) {
return InkWell(
onTap: () {
TenderDetailRouteData().push(context);
TenderDetailRouteData(tenderId: tender.id!).push(context);
},
child: Container(
width: 108.0.w(),