From e950c5c2fa066a53f3c0781033062869f58d9131 Mon Sep 17 00:00:00 2001 From: Andrew nuark G Date: Mon, 24 Apr 2023 12:57:29 +0700 Subject: [PATCH] Better behaviour for login page --- lib/pages/login_page.dart | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/lib/pages/login_page.dart b/lib/pages/login_page.dart index ebdfc94..d412533 100644 --- a/lib/pages/login_page.dart +++ b/lib/pages/login_page.dart @@ -1,13 +1,13 @@ import 'dart:async'; import 'package:animated_background/animated_background.dart'; +import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:tuuli_api/tuuli_api.dart'; import 'package:tuuli_app/api_controller.dart'; -class LoginPageController extends GetxController - with GetSingleTickerProviderStateMixin { +class LoginPageController extends GetxController { final _login = "".obs; String get login => _login.value; set login(String value) => _login.value = value; @@ -37,13 +37,31 @@ class LoginPageController extends GetxController if (resp.statusCode == 200 && respData != null) { final accessToken = respData.accessToken; Get.find().token = accessToken; - Get.offAllNamed("/home"); + WidgetsBinding.instance.addPostFrameCallback((_) { + Get.offAllNamed("/home"); + }); } else { Get.snackbar( "Login failed", 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) { Get.snackbar( "Login failed", @@ -65,12 +83,8 @@ class LoginPage extends GetView { return Scaffold( body: Stack( children: [ - AnimatedBackground( - behaviour: RandomParticleBehaviour(), - vsync: controller, - child: const SizedBox.square( - dimension: 0, - ), + const SizedBox.square( + dimension: 0, ), Row( mainAxisAlignment: MainAxisAlignment.start,