feedback models added

This commit is contained in:
amirrezaghabeli
2025-08-17 12:29:12 +03:30
parent dfe3e21068
commit 5bb7326c76
21 changed files with 1969 additions and 94 deletions
+36 -5
View File
@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:tm_app/view_models/auth_view_model.dart';
import 'package:tm_app/core/routes/app_routes.dart';
import 'package:tm_app/view_models/profile_view_model.dart';
import 'package:tm_app/views/shared/tender_app_bar.dart';
@@ -10,9 +10,42 @@ import '../../../core/utils/size_config.dart';
import '../widgets/theme_toggle.dart';
import '../widgets/title_description.dart';
class MobileProfilePage extends StatelessWidget {
class MobileProfilePage extends StatefulWidget {
const MobileProfilePage({super.key});
@override
State<MobileProfilePage> createState() => _MobileProfilePageState();
}
class _MobileProfilePageState extends State<MobileProfilePage> {
late ProfileViewModel viewModel;
@override
void initState() {
super.initState();
viewModel = context.read<ProfileViewModel>();
viewModel.addListener(_profileListener);
}
void _profileListener() {
if (viewModel.errorMessage != null) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text(viewModel.errorMessage!),
backgroundColor: AppColors.red,
),
);
}
if (viewModel.loggedOut) {
LoginScreenRoute().go(context);
}
}
@override
void dispose() {
viewModel.removeListener(_profileListener);
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
@@ -70,9 +103,7 @@ class MobileProfilePage extends StatelessWidget {
child: const ThemeToggle(),
),
ElevatedButton(
onPressed: () {
context.read<AuthViewModel>().logout();
},
onPressed: () => viewModel.logout(),
child: const Text('Logout'),
),
],