merging branches

This commit is contained in:
amirrezaghabeli
2025-09-17 10:15:41 +03:30
parent d43aced4bd
commit 43ef5bd48b
10 changed files with 513 additions and 46 deletions
@@ -4,17 +4,45 @@ import 'package:go_router/go_router.dart';
import 'package:provider/provider.dart';
import 'package:tm_app/core/utils/size_config.dart';
import 'package:tm_app/views/forget_password_create/strings/forgot_password_create_strings.dart';
import 'package:tm_app/views/forget_password_otp.dart/pages/m_forget_password_otp.dart_page.dart';
import '../../../core/constants/assets.dart';
import '../../../core/theme/colors.dart';
import '../../../core/utils/app_toast.dart';
import '../../../view_models/auth_view_model.dart';
import '../../login/widgets/login_textfield.dart';
import '../../shared/base_button.dart';
class DesktopForgotPasswordCreatePage extends StatelessWidget {
class DesktopForgotPasswordCreatePage extends StatefulWidget {
const DesktopForgotPasswordCreatePage({super.key});
@override
State<DesktopForgotPasswordCreatePage> createState() =>
_DesktopForgotPasswordCreatePageState();
}
class _DesktopForgotPasswordCreatePageState
extends State<DesktopForgotPasswordCreatePage> {
late final AuthViewModel viewModel;
@override
void initState() {
viewModel = context.read<AuthViewModel>();
viewModel.addListener(_viewModelListener);
super.initState();
}
@override
void dispose() {
viewModel.removeListener(_viewModelListener);
super.dispose();
}
void _viewModelListener() {
if (viewModel.resetPasswordErrorMessage != null) {
AppToast.error(context, viewModel.resetPasswordErrorMessage!);
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
@@ -117,7 +145,7 @@ class DesktopForgotPasswordCreatePage extends StatelessWidget {
),
),
SizedBox(height: 80.0.h()),
viewModel.isLoading
viewModel.isResetPasswordLoading
? const BaseButton(
isEnabled: false,
text: ForgotPasswordCreateStrings.resetLink,
@@ -129,14 +157,7 @@ class DesktopForgotPasswordCreatePage extends StatelessWidget {
onPressed:
viewModel.isNewPasswordValid
? () async {
Navigator.push(
context,
MaterialPageRoute(
builder:
(context) =>
const MobileForgotPasswordOtpPage(),
),
);
viewModel.resetPassword();
}
: null,
),
@@ -4,17 +4,45 @@ import 'package:go_router/go_router.dart';
import 'package:provider/provider.dart';
import 'package:tm_app/core/utils/size_config.dart';
import 'package:tm_app/views/forget_password_create/strings/forgot_password_create_strings.dart';
import 'package:tm_app/views/forget_password_otp.dart/pages/m_forget_password_otp.dart_page.dart';
import '../../../core/constants/assets.dart';
import '../../../core/theme/colors.dart';
import '../../../core/utils/app_toast.dart';
import '../../../view_models/auth_view_model.dart';
import '../../login/widgets/login_textfield.dart';
import '../../shared/base_button.dart';
class MobileForgotPasswordCreatePage extends StatelessWidget {
class MobileForgotPasswordCreatePage extends StatefulWidget {
const MobileForgotPasswordCreatePage({super.key});
@override
State<MobileForgotPasswordCreatePage> createState() =>
_MobileForgotPasswordCreatePageState();
}
class _MobileForgotPasswordCreatePageState
extends State<MobileForgotPasswordCreatePage> {
late final AuthViewModel viewModel;
@override
void initState() {
viewModel = context.read<AuthViewModel>();
viewModel.addListener(_viewModelListener);
super.initState();
}
@override
void dispose() {
viewModel.removeListener(_viewModelListener);
super.dispose();
}
void _viewModelListener() {
if (viewModel.resetPasswordErrorMessage != null) {
AppToast.error(context, viewModel.resetPasswordErrorMessage!);
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
@@ -114,7 +142,7 @@ class MobileForgotPasswordCreatePage extends StatelessWidget {
),
),
SizedBox(height: 80.0.h()),
viewModel.isLoading
viewModel.isResetPasswordLoading
? const BaseButton(
isEnabled: false,
text: ForgotPasswordCreateStrings.resetLink,
@@ -126,14 +154,7 @@ class MobileForgotPasswordCreatePage extends StatelessWidget {
onPressed:
viewModel.isNewPasswordValid
? () async {
Navigator.push(
context,
MaterialPageRoute(
builder:
(context) =>
const MobileForgotPasswordOtpPage(),
),
);
viewModel.resetPassword();
}
: null,
),
@@ -4,17 +4,45 @@ import 'package:go_router/go_router.dart';
import 'package:provider/provider.dart';
import 'package:tm_app/core/utils/size_config.dart';
import 'package:tm_app/views/forget_password_create/strings/forgot_password_create_strings.dart';
import 'package:tm_app/views/forget_password_otp.dart/pages/m_forget_password_otp.dart_page.dart';
import '../../../core/constants/assets.dart';
import '../../../core/theme/colors.dart';
import '../../../core/utils/app_toast.dart';
import '../../../view_models/auth_view_model.dart';
import '../../login/widgets/login_textfield.dart';
import '../../shared/base_button.dart';
class TabletForgotPasswordCreatePage extends StatelessWidget {
class TabletForgotPasswordCreatePage extends StatefulWidget {
const TabletForgotPasswordCreatePage({super.key});
@override
State<TabletForgotPasswordCreatePage> createState() =>
_TabletForgotPasswordCreatePageState();
}
class _TabletForgotPasswordCreatePageState
extends State<TabletForgotPasswordCreatePage> {
late final AuthViewModel viewModel;
@override
void initState() {
viewModel = context.read<AuthViewModel>();
viewModel.addListener(_viewModelListener);
super.initState();
}
@override
void dispose() {
viewModel.removeListener(_viewModelListener);
super.dispose();
}
void _viewModelListener() {
if (viewModel.resetPasswordErrorMessage != null) {
AppToast.error(context, viewModel.resetPasswordErrorMessage!);
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
@@ -117,7 +145,7 @@ class TabletForgotPasswordCreatePage extends StatelessWidget {
),
),
SizedBox(height: 80.0.h()),
viewModel.isLoading
viewModel.isResetPasswordLoading
? const BaseButton(
isEnabled: false,
text: ForgotPasswordCreateStrings.resetLink,
@@ -129,14 +157,7 @@ class TabletForgotPasswordCreatePage extends StatelessWidget {
onPressed:
viewModel.isNewPasswordValid
? () async {
Navigator.push(
context,
MaterialPageRoute(
builder:
(context) =>
const MobileForgotPasswordOtpPage(),
),
);
viewModel.resetPassword();
}
: null,
),