Merge pull request 'your_tenders_changes' (#91) from your_tenders_changes into main

Reviewed-on: https://repo.ravanertebat.com/TM/tm_app/pulls/91
This commit is contained in:
a.ghabeli
2025-09-03 09:21:15 +03:30
9 changed files with 172 additions and 15 deletions
+2 -1
View File
@@ -169,7 +169,8 @@ class TenderCard extends StatelessWidget {
Widget _tenderDescription() {
return Text(
tender.description ?? '',
maxLines: 7,
maxLines: 4,
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: AppColors.grey70,
fontSize: 16.0.sp(),
@@ -7,9 +7,29 @@ import 'package:tm_app/views/your_tenders/strings/your_tenders_strings.dart';
import 'package:tm_app/views/your_tenders/widgets/filter_button.dart';
import 'package:tm_app/views/your_tenders/widgets/tenders_submitted.dart';
class YourTendersMobilePage extends StatelessWidget {
class YourTendersMobilePage extends StatefulWidget {
const YourTendersMobilePage({super.key});
@override
State<YourTendersMobilePage> createState() => _YourTendersMobilePageState();
}
class _YourTendersMobilePageState extends State<YourTendersMobilePage> {
late final YourTendersViewModel viewModel;
@override
void initState() {
viewModel = context.read<YourTendersViewModel>();
super.initState();
}
@override
void dispose() {
WidgetsBinding.instance.addPostFrameCallback((_) {
viewModel.clearFilter();
});
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
@@ -1,13 +1,35 @@
import 'package:flutter/material.dart';
import 'package:tm_app/core/utils/size_config.dart';
import 'package:provider/provider.dart';
import 'package:tm_app/core/utils/size_config.dart';
import 'package:tm_app/view_models/your_tenders_view_model.dart';
import 'package:tm_app/views/shared/responsive_builder.dart';
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';
class YourTendersScreen extends StatelessWidget {
class YourTendersScreen extends StatefulWidget {
const YourTendersScreen({super.key});
@override
State<YourTendersScreen> createState() => _YourTendersScreenState();
}
class _YourTendersScreenState extends State<YourTendersScreen> {
late final YourTendersViewModel viewModel;
@override
void initState() {
super.initState();
viewModel = context.read<YourTendersViewModel>();
WidgetsBinding.instance.addPostFrameCallback((_) {
viewModel.getTenders(
limit: 10,
offset: 0,
createdFrom: '',
createdTo: '',
);
});
}
@override
Widget build(BuildContext context) {
SizeConfig.init(context);
@@ -1,6 +1,7 @@
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 '../../../core/constants/assets.dart';
import '../../../core/theme/colors.dart';
@@ -63,7 +64,7 @@ class TenderCard extends StatelessWidget {
children: [
// Date
Text(
date,
unixToDate(int.parse(date)),
style: TextStyle(
color: AppColors.grey60,
fontSize: 12.0.sp(),
@@ -64,7 +64,9 @@ class TendersFilterDialog extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
start == null ? YourTendersStrings.startDate : viewModel.startDateFormatted,
start == null
? YourTendersStrings.startDate
: viewModel.startDateFormatted,
style: TextStyle(
fontSize: 16.0.sp(),
fontWeight: FontWeight.w400,
@@ -72,7 +74,9 @@ class TendersFilterDialog extends StatelessWidget {
),
),
Text(
end == null ? YourTendersStrings.endDate : viewModel.endDateFormatted,
end == null
? YourTendersStrings.endDate
: viewModel.endDateFormatted,
style: TextStyle(
fontSize: 16.0.sp(),
fontWeight: FontWeight.w400,
@@ -158,6 +162,7 @@ class TendersFilterDialog extends StatelessWidget {
isEnabled: true,
onPressed: () {
context.pop();
vm.callWithFilter();
},
text: YourTendersStrings.confirm,
textColor: AppColors.mainBlue,