step 25 : upload ktp, qrcode string, edit data,

check token expired 10 menit dari expired_date
This commit is contained in:
sindhu
2025-02-28 05:21:17 +07:00
parent 464f747892
commit 29c38b011a
23 changed files with 1342 additions and 609 deletions

View File

@@ -28,25 +28,29 @@ class NoLoginHomeScreen extends HookConsumerWidget {
final host = currentUser?.host ?? "";
final isLoading = useState<bool>(false);
final listScanArr = ref.watch(listScanRwt);
final userId = currentUser?.client_id ?? "";
final client_id = currentUser?.client_id ?? "";
final token = currentUser?.token ?? "";
final expire_date = currentUser?.expire_date ?? "";
final readProsesAksi = ref.watch(noLoginprosesAksi);
useEffect(() {
WidgetsBinding.instance.addPostFrameCallback((timeStamp) async {
final userID = currentUser?.client_id ?? "0";
// final prefs = await SharedPreferences.getInstance();
final token = currentUser?.token ?? "";
if (userID == "0") {
// not logged in
if (client_id == "0" || token == "") {
// not logged in and doesn't have token
Navigator.of(context)
.pushNamedAndRemoveUntil(noLoginRoute, (route) => false);
return;
}
if (token == "") {
Navigator.of(context)
.pushNamedAndRemoveUntil(noLoginRoute, (route) => false);
return;
if (token != "") {
if (await isTokenExpired() == true) {
print("Token expired, refreshing...");
ref.read(noLoginRefreshTokenProvider.notifier).refreshToken(
client_id: client_id,
host: host,
expire_date: expire_date,
);
}
}
});
return () {};
@@ -56,14 +60,42 @@ class NoLoginHomeScreen extends HookConsumerWidget {
WidgetsBinding.instance.addPostFrameCallback((timestap) async {
ref.read(noLoginRiwayatScanProvider.notifier).noLoginRiwayatScan(
host: host,
userId: userId,
token: currentUser?.token ?? "",
expire_date: currentUser?.expire_date ?? "",
client_id: client_id,
token: token,
expire_date: expire_date,
);
});
return () {};
}, []);
// refreshToken Provider
ref.listen(noLoginRefreshTokenProvider, (prev, next) async {
if (next is NoLoginRefreshTokenStateLoading) {
isLoading.value = true;
} else if (next is NoLoginRefreshTokenStateError) {
isLoading.value = false;
// errorMessage.value = next.message;
snackbarWidget(
context,
next.message,
snackbarType.error,
Duration(seconds: 3),
);
} else if (next is NoLoginRefreshTokenStateDone) {
isLoading.value = false;
// check proses aksi yg berlangsung
if (readProsesAksi == Constant.getRiwayat) {
ref.read(noLoginRiwayatScanProvider.notifier).noLoginRiwayatScan(
host: host,
client_id: client_id,
token: token,
expire_date: expire_date,
);
}
}
});
// listRiwayProvider
ref.listen(noLoginRiwayatScanProvider, (prev, next) async {
if (next is NoLoginRiwayatScanStateLoading) {
@@ -83,33 +115,20 @@ class NoLoginHomeScreen extends HookConsumerWidget {
});
void getRiwayat() async {
final currentUser = ref.read(noLoginCurrentUserProvider);
final host = currentUser?.host ?? "";
final userId = currentUser?.client_id ?? "";
final expireDate = currentUser?.expire_date ?? "";
if (await isTokenExpired() == true) {
ref.read(noLoginprosesAksi.notifier).state = Constant.getRiwayat;
print("Token expired, refreshing...");
ref.read(noLoginRefreshTokenProvider.notifier).refreshToken(
client_id: userId,
client_id: client_id,
host: host,
expire_date: expireDate,
);
ref.read(noLoginRiwayatScanProvider.notifier).noLoginRiwayatScan(
host: host,
userId: userId,
token: ref.read(noLoginCurrentUserProvider)?.token ?? "",
expire_date:
ref.read(noLoginCurrentUserProvider)?.expire_date ?? "",
expire_date: expire_date,
);
} else {
ref.read(noLoginRiwayatScanProvider.notifier).noLoginRiwayatScan(
host: host,
userId: userId,
token: ref.read(noLoginCurrentUserProvider)?.token ?? "",
expire_date:
ref.read(noLoginCurrentUserProvider)?.expire_date ?? "",
client_id: client_id,
token: token,
expire_date: expire_date,
);
}
}