fixed warnings
This commit is contained in:
@@ -13,9 +13,8 @@ class AuthRepository {
|
||||
try {
|
||||
final response = await _authService.login(email, password);
|
||||
final user = UserModel(token: response['token'], name: response['name']);
|
||||
return Result.ok(user); // در حالت موفقیت، یک Ok برمیگرداند
|
||||
} catch (e) {
|
||||
// در حالت خطا، یک Error برمیگرداند
|
||||
return Result.ok(user);
|
||||
} on Exception {
|
||||
return Result.error(
|
||||
AuthenticationException('Email or password is not correct.'),
|
||||
);
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:tm_app/core/utils/logger.dart';
|
||||
import 'package:tm_app/core/utils/result.dart';
|
||||
import 'package:tm_app/data/services/mock_data/tender_detail_mock.dart';
|
||||
@@ -31,6 +30,4 @@ Future<Result<TenderDetailResponseModel>> getTenderDetail({
|
||||
return Result.error(Exception(e));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -9,9 +9,38 @@ import '../../../core/utils/size_config.dart';
|
||||
import '../../../view_models/auth_view_model.dart';
|
||||
import '../widgets/widgets.dart';
|
||||
|
||||
class LoginDesktopPage extends StatelessWidget {
|
||||
class LoginDesktopPage extends StatefulWidget {
|
||||
const LoginDesktopPage({super.key});
|
||||
|
||||
@override
|
||||
State<LoginDesktopPage> createState() => _LoginDesktopPageState();
|
||||
}
|
||||
|
||||
class _LoginDesktopPageState extends State<LoginDesktopPage> {
|
||||
late final AuthViewModel viewModel;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
viewModel = context.read<AuthViewModel>();
|
||||
viewModel.addListener(_viewModelListener);
|
||||
}
|
||||
|
||||
void _viewModelListener() {
|
||||
if (viewModel.loggedInUser != null) {
|
||||
HomeRouteData().go(context);
|
||||
} else 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) {
|
||||
SizeConfig.init(context);
|
||||
@@ -55,7 +84,6 @@ class LoginDesktopPage extends StatelessWidget {
|
||||
borderRedus: 12,
|
||||
),
|
||||
SizedBox(height: 32.0.h()),
|
||||
|
||||
if (viewModel.isLoading)
|
||||
BaseButton(
|
||||
isEnabled: false,
|
||||
@@ -65,25 +93,11 @@ class LoginDesktopPage extends StatelessWidget {
|
||||
else
|
||||
BaseButton(
|
||||
isEnabled: viewModel.isLoginEnabled,
|
||||
onPressed:
|
||||
viewModel.isLoginEnabled
|
||||
? () async {
|
||||
onPressed: () async {
|
||||
if (viewModel.isLoginEnabled) {
|
||||
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,
|
||||
},
|
||||
),
|
||||
],
|
||||
);
|
||||
|
||||
@@ -9,9 +9,40 @@ import '../../../core/utils/size_config.dart';
|
||||
import '../../../view_models/auth_view_model.dart';
|
||||
import '../widgets/widgets.dart';
|
||||
|
||||
class LoginTabletPage extends StatelessWidget {
|
||||
class LoginTabletPage extends StatefulWidget {
|
||||
const LoginTabletPage({super.key});
|
||||
|
||||
@override
|
||||
State<LoginTabletPage> createState() => _LoginTabletPageState();
|
||||
}
|
||||
|
||||
class _LoginTabletPageState extends State<LoginTabletPage> {
|
||||
late final AuthViewModel viewModel;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
viewModel = context.read<AuthViewModel>();
|
||||
viewModel.addListener(_viewModelListener);
|
||||
}
|
||||
|
||||
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) {
|
||||
SizeConfig.init(context);
|
||||
@@ -31,7 +62,6 @@ class LoginTabletPage extends StatelessWidget {
|
||||
SizedBox(height: 32.0.h()),
|
||||
const LoginTitle(),
|
||||
SizedBox(height: 32.0.h()),
|
||||
|
||||
LoginTextField(
|
||||
controller: viewModel.usernameController,
|
||||
focusNode: viewModel.usernameFocus,
|
||||
@@ -42,7 +72,6 @@ class LoginTabletPage extends StatelessWidget {
|
||||
prefixIconPadding: 4.0.w(),
|
||||
),
|
||||
SizedBox(height: 16.0.h()),
|
||||
|
||||
LoginTextField(
|
||||
controller: viewModel.passwordController,
|
||||
focusNode: viewModel.passwordFocus,
|
||||
@@ -56,7 +85,6 @@ class LoginTabletPage extends StatelessWidget {
|
||||
borderRedus: 12,
|
||||
),
|
||||
SizedBox(height: 32.0.h()),
|
||||
|
||||
if (viewModel.isLoading)
|
||||
BaseButton(
|
||||
isEnabled: false,
|
||||
@@ -66,19 +94,9 @@ class LoginTabletPage extends StatelessWidget {
|
||||
else
|
||||
BaseButton(
|
||||
isEnabled: viewModel.isLoginEnabled,
|
||||
onPressed:
|
||||
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,
|
||||
),
|
||||
|
||||
@@ -38,7 +38,7 @@ class LoginTextField extends StatelessWidget {
|
||||
child: TextField(
|
||||
controller: controller,
|
||||
focusNode: focusNode,
|
||||
obscureText: isPassword ? obscureText : false,
|
||||
obscureText: isPassword && obscureText,
|
||||
decoration: InputDecoration(
|
||||
contentPadding: EdgeInsets.symmetric(
|
||||
vertical: (fieldHeight != null ? (fieldHeight! / 2.8) : 16.0).h(),
|
||||
|
||||
Reference in New Issue
Block a user