tuuli_app/lib/pages/checkup_page.dart

65 lines
1.7 KiB
Dart

import 'package:animated_background/animated_background.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:get_storage/get_storage.dart';
import 'package:tuuli_app/api/api_client.dart';
class CheckupPage extends StatefulWidget {
const CheckupPage({super.key});
@override
State<StatefulWidget> createState() => _CheckupPageState();
}
class _CheckupPageState extends State<CheckupPage>
with TickerProviderStateMixin {
@override
void initState() {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) {
checkCredentials();
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: AnimatedBackground(
behaviour: RandomParticleBehaviour(),
vsync: this,
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'Checking credentials...',
style: Theme.of(context).textTheme.headlineMedium,
),
const SizedBox(height: 16),
const SizedBox.square(
dimension: 32,
child: CircularProgressIndicator(),
),
],
),
),
),
);
}
Future<void> checkCredentials() async {
final accessToken = GetStorage().read<String?>("accessToken");
if (accessToken == null) {
Get.offAllNamed("/login");
} else {
final apiClient = Get.find<ApiClient>();
(await apiClient.tablesList()).unfold((data) {
Get.offAllNamed("/home");
}, (error) async {
await GetStorage().remove("accessToken");
Get.offAllNamed("/login");
});
}
}
}