You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
4.0 KiB
Dart
92 lines
4.0 KiB
Dart
import 'dart:async';
|
|
import 'dart:convert';
|
|
|
|
import 'package:car_customer_app/api/client/user_api_client.dart';
|
|
import 'package:car_customer_app/api/shared_prefrence.dart';
|
|
import 'package:car_customer_app/classes/utils.dart';
|
|
import 'package:car_customer_app/config/routes.dart';
|
|
import 'package:car_customer_app/extensions/int_extensions.dart';
|
|
import 'package:car_customer_app/extensions/string_extensions.dart';
|
|
import 'package:car_customer_app/generated/locale_keys.g.dart';
|
|
import 'package:car_customer_app/models/user/user.dart';
|
|
import 'package:car_customer_app/utils/navigator.dart';
|
|
import 'package:car_customer_app/utils/utils.dart';
|
|
import 'package:car_customer_app/extensions/widget_extensions.dart';
|
|
import 'package:car_customer_app/widgets/show_fill_button.dart';
|
|
import 'package:easy_localization/easy_localization.dart';
|
|
import 'package:easy_localization/src/public_ext.dart';
|
|
import 'package:flutter/material.dart';
|
|
|
|
import '../../classes/app_state.dart';
|
|
import '../../models/user/refresh_token.dart';
|
|
|
|
class SplashPage extends StatelessWidget {
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Scaffold(
|
|
body: Container(
|
|
width: double.infinity,
|
|
height: double.infinity,
|
|
child: Column(
|
|
children: [
|
|
mFlex(5),
|
|
"Logo".toText(fontSize: 45, isBold: true),
|
|
mFlex(3),
|
|
LocaleKeys.firstTimeLogIn.tr().toText(fontSize: 18, isBold: true).onPress(() {
|
|
navigateWithName(context, AppRoutes.registerSelection);
|
|
}),
|
|
mFlex(1),
|
|
LocaleKeys.alreadySigned.tr().toText(fontSize: 18, isBold: true).onPress(() async {
|
|
// navigateWithName(context, AppRoutes.loginVerification);
|
|
|
|
String token = await SharedPrefManager.getUserToken();
|
|
String refreshToken = await SharedPrefManager.getRefreshToken();
|
|
Utils.showLoading(context);
|
|
RefreshToken refresh = await UserApiClent().RefreshTokenAPI(token, refreshToken);
|
|
Utils.hideLoading(context);
|
|
if (refresh.messageStatus == 1) {
|
|
SharedPrefManager.setUserToken(refresh.data!.accessToken ?? "");
|
|
SharedPrefManager.setRefreshToken(refresh.data!.refreshToken ?? "");
|
|
String mdata = await SharedPrefManager.getData();
|
|
print(mdata);
|
|
UserInfo info = UserInfo.fromJson(jsonDecode(mdata));
|
|
User user = new User();
|
|
user.data = new UserData(accessToken: refresh.data!.accessToken ?? "", refreshToken: refresh.data!.refreshToken ?? "", userInfo: info);
|
|
AppState().setUser = user;
|
|
print(AppState().getUser.data?.userInfo?.roleName);
|
|
navigateWithName(context, AppRoutes.dashboard);
|
|
} else {
|
|
String accessToken = await SharedPrefManager.getUserToken();
|
|
String refreshToken = await SharedPrefManager.getRefreshToken();
|
|
String mdata = await SharedPrefManager.getData();
|
|
UserInfo info = UserInfo.fromJson(jsonDecode(mdata));
|
|
User user = new User();
|
|
user.data = new UserData(accessToken: accessToken, refreshToken: refreshToken, userInfo: info);
|
|
AppState().setUser = user;
|
|
print(AppState().getUser.data?.userInfo?.roleName);
|
|
navigateWithName(context, AppRoutes.dashboard);
|
|
}
|
|
}),
|
|
35.height,
|
|
TextButton(
|
|
style: TextButton.styleFrom(
|
|
backgroundColor: Colors.white,
|
|
),
|
|
onPressed: () {
|
|
if (EasyLocalization.of(context)?.currentLocale?.countryCode == "SA")
|
|
context.setLocale(const Locale("en", "US"));
|
|
else
|
|
context.setLocale(const Locale('ar', 'SA'));
|
|
},
|
|
child: Text(
|
|
LocaleKeys.english.tr(),
|
|
),
|
|
),
|
|
mFlex(5),
|
|
],
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|