Better behaviour for login page

This commit is contained in:
Andrew 2023-04-24 12:57:29 +07:00
parent 1f1e946018
commit e950c5c2fa

View file

@ -1,13 +1,13 @@
import 'dart:async'; import 'dart:async';
import 'package:animated_background/animated_background.dart'; import 'package:animated_background/animated_background.dart';
import 'package:dio/dio.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:tuuli_api/tuuli_api.dart'; import 'package:tuuli_api/tuuli_api.dart';
import 'package:tuuli_app/api_controller.dart'; import 'package:tuuli_app/api_controller.dart';
class LoginPageController extends GetxController class LoginPageController extends GetxController {
with GetSingleTickerProviderStateMixin {
final _login = "".obs; final _login = "".obs;
String get login => _login.value; String get login => _login.value;
set login(String value) => _login.value = value; set login(String value) => _login.value = value;
@ -37,13 +37,31 @@ class LoginPageController extends GetxController
if (resp.statusCode == 200 && respData != null) { if (resp.statusCode == 200 && respData != null) {
final accessToken = respData.accessToken; final accessToken = respData.accessToken;
Get.find<ApiController>().token = accessToken; Get.find<ApiController>().token = accessToken;
WidgetsBinding.instance.addPostFrameCallback((_) {
Get.offAllNamed("/home"); Get.offAllNamed("/home");
});
} else { } else {
Get.snackbar( Get.snackbar(
"Login failed", "Login failed",
resp.statusMessage ?? "Unknown error", resp.statusMessage ?? "Unknown error",
); );
} }
} on DioError catch (e) {
final errorData = e.response?.data;
if (errorData != null) {
final error = errorData["error"];
if (error != null) {
Get.snackbar(
"Login failed",
"$error",
);
}
} else {
Get.snackbar(
"Login failed",
"$e",
);
}
} catch (e) { } catch (e) {
Get.snackbar( Get.snackbar(
"Login failed", "Login failed",
@ -65,13 +83,9 @@ class LoginPage extends GetView<LoginPageController> {
return Scaffold( return Scaffold(
body: Stack( body: Stack(
children: [ children: [
AnimatedBackground( const SizedBox.square(
behaviour: RandomParticleBehaviour(),
vsync: controller,
child: const SizedBox.square(
dimension: 0, dimension: 0,
), ),
),
Row( Row(
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.stretch, crossAxisAlignment: CrossAxisAlignment.stretch,