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.
car_customer_app/lib/pages/user/splash_page.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),
],
),
),
);
}
}