some changes

This commit is contained in:
amirrezaghabeli
2025-08-11 10:27:33 +03:30
parent 33f0a07d26
commit 86f0f03392
11 changed files with 66 additions and 76 deletions
@@ -10,26 +10,10 @@ import 'package:tm_app/views/detail/widgets/tender_detail_action.dart';
import 'package:tm_app/views/detail/widgets/tender_detail_card.dart';
import 'package:tm_app/views/detail/widgets/tender_detail_header.dart';
class TenderDetailDesktopPage extends StatefulWidget {
class TenderDetailDesktopPage extends StatelessWidget {
final String tenderId;
const TenderDetailDesktopPage({required this.tenderId, super.key});
@override
State<TenderDetailDesktopPage> createState() =>
_TenderDetailDesktopPageState();
}
class _TenderDetailDesktopPageState extends State<TenderDetailDesktopPage> {
@override
void initState() {
super.initState();
Future.microtask(() {
context.read<TenderDetailViewModel>().getTenderDetail(
id: widget.tenderId,
);
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
+3 -18
View File
@@ -10,24 +10,9 @@ import 'package:tm_app/views/detail/widgets/tender_detail_action.dart';
import 'package:tm_app/views/detail/widgets/tender_detail_card.dart';
import 'package:tm_app/views/detail/widgets/tender_detail_header.dart';
class TenderDetailMobilePage extends StatefulWidget {
class TenderDetailMobilePage extends StatelessWidget {
final String tenderId;
const TenderDetailMobilePage({super.key, required this.tenderId});
@override
State<TenderDetailMobilePage> createState() => _TenderDetailMobilePageState();
}
class _TenderDetailMobilePageState extends State<TenderDetailMobilePage> {
@override
void initState() {
super.initState();
Future.microtask(() {
context.read<TenderDetailViewModel>().getTenderDetail(
id: widget.tenderId,
);
});
}
const TenderDetailMobilePage({required this.tenderId, super.key});
@override
Widget build(BuildContext context) {
@@ -48,7 +33,7 @@ class _TenderDetailMobilePageState extends State<TenderDetailMobilePage> {
final detail = tenderViewModel.tenderDetail;
if (detail == null) {
return const Center(child: Text("No tender details available"));
return const Center(child: Text('No tender details available'));
}
return SingleChildScrollView(
+1 -16
View File
@@ -10,25 +10,10 @@ import 'package:tm_app/views/detail/widgets/tender_detail_action.dart';
import 'package:tm_app/views/detail/widgets/tender_detail_card.dart';
import 'package:tm_app/views/detail/widgets/tender_detail_header.dart';
class TenderDetailTabletPage extends StatefulWidget {
class TenderDetailTabletPage extends StatelessWidget {
final String tenderId;
const TenderDetailTabletPage({required this.tenderId, super.key});
@override
State<TenderDetailTabletPage> createState() => _TenderDetailTabletPageState();
}
class _TenderDetailTabletPageState extends State<TenderDetailTabletPage> {
@override
void initState() {
super.initState();
Future.microtask(() {
context.read<TenderDetailViewModel>().getTenderDetail(
id: widget.tenderId,
);
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
@@ -28,7 +28,7 @@ class TenderDetailActions extends StatelessWidget {
isEnabled: true,
text: AppStrings.tenderSubmitButton,
backgroundColor: AppColors.lightBlue,
textColor: AppColors.primary30,
textColor: AppColors.mainBlue,
onPressed: () {},
width: 120.0.w(),
),
+2 -1
View File
@@ -164,8 +164,9 @@ class DesktopHomePage extends StatelessWidget {
Widget _bottomListView(HomeResponseModel homeResponse) {
return SizedBox(
width: 740,
height: 310.0.h(),
height: 290.0,
child: ListView.builder(
padding: EdgeInsets.only(bottom: 20),
itemCount: homeResponse.yourTenders?.length ?? 0,
scrollDirection: Axis.horizontal,
itemBuilder: (context, index) {
+36 -16
View File
@@ -9,9 +9,39 @@ import '../../../core/utils/size_config.dart';
import '../../../view_models/auth_view_model.dart';
import '../widgets/widgets.dart';
class LoginMobilePage extends StatelessWidget {
class LoginMobilePage extends StatefulWidget {
const LoginMobilePage({super.key});
@override
State<LoginMobilePage> createState() => _LoginMobilePageState();
}
class _LoginMobilePageState extends State<LoginMobilePage> {
late final AuthViewModel viewModel;
@override
void initState() {
viewModel = context.read<AuthViewModel>();
viewModel.addListener(_viewModelListener);
super.initState();
}
void _viewModelListener() {
if (viewModel.loggedInUser != null) {
HomeRouteData().go(context);
}
if (viewModel.errorMessage != null) {
ScaffoldMessenger.of(
context,
).showSnackBar(SnackBar(content: Text(viewModel.errorMessage!)));
}
}
@override
void dispose() {
viewModel.removeListener(_viewModelListener);
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
@@ -58,21 +88,11 @@ class LoginMobilePage extends StatelessWidget {
else
BaseButton(
isEnabled: viewModel.isLoginEnabled,
onPressed:
viewModel.isLoginEnabled
? () async {
await viewModel.login();
if (viewModel.loggedInUser != null) {
HomeRouteData().go(context);
} else if (viewModel.errorMessage != null) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text(viewModel.errorMessage!),
),
);
}
}
: null,
onPressed: () async {
if (viewModel.isLoginEnabled) {
await viewModel.login();
}
},
),
],
);
@@ -30,6 +30,7 @@ class TenderActionButtons extends StatelessWidget {
Tooltip(
message: 'Dislike',
child: InkWell(
splashColor: Colors.transparent,
onTap: () {
viewModel.onDislike(tender);
},
@@ -69,6 +70,7 @@ class TenderActionButtons extends StatelessWidget {
Tooltip(
message: 'Reject',
child: InkWell(
splashColor: Colors.transparent,
onTap: () {
viewModel.onReject(tender);
},
@@ -119,6 +121,7 @@ class TenderActionButtons extends StatelessWidget {
Tooltip(
message: 'Submit',
child: InkWell(
splashColor: Colors.transparent,
onTap: () {
viewModel.onSubmit(tender);
},
@@ -170,6 +173,7 @@ class TenderActionButtons extends StatelessWidget {
Tooltip(
message: 'Like',
child: InkWell(
splashColor: Colors.transparent,
onTap: () {
viewModel.onLike(tender);
},