Skip to content

Commit 0d72ffe

Browse files
committed
improve auth state ref
1 parent e383801 commit 0d72ffe

File tree

2 files changed

+17
-9
lines changed

2 files changed

+17
-9
lines changed

app/lib/main/app.dart

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
1-
import 'package:app/presentation/ui/custom/loading_screen.dart';
2-
import 'package:common/core/resource.dart';
31
import 'package:flutter/material.dart';
42
import 'package:domain/bloc/app/app_cubit.dart';
53
import 'package:domain/bloc/app/app_state.dart';
64
import 'package:domain/bloc/auth/auth_cubit.dart';
7-
import 'package:domain/bloc/auth/auth_state.dart';
85
import 'package:app/presentation/navigation/routers.dart';
96
import 'package:app/presentation/resources/locale/generated/l10n.dart';
107
import 'package:app/presentation/themes/app_themes.dart';

app/lib/presentation/navigation/routers.dart

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import 'package:app/main/init.dart';
21
import 'package:app/presentation/ui/pages/home/home_page.dart';
32
import 'package:app/presentation/ui/pages/login/login_page.dart';
43
import 'package:app/presentation/ui/pages/sign_up/sign_up_page.dart';
@@ -37,6 +36,7 @@ class Routers {
3736
path: '/',
3837
builder: (context, state) {
3938
return BlocListener<AuthCubit, Resource>(
39+
listenWhen: (previous, current) => current is RSuccess,
4040
listener: (_, state) {
4141
if (state is RSuccess) {
4242
switch (state.data) {
@@ -58,11 +58,17 @@ class Routers {
5858
name: Routes.auth.name,
5959
path: Routes.auth.path,
6060
redirect: (context, state) {
61-
if (getIt<AuthCubit>().isLoggedIn()) {
61+
if (context.read<AuthCubit>().isLoggedIn()) {
6262
return '${Routes.app.path}${Routes.home.path}';
6363
}
6464

65-
return '${Routes.auth.path}${Routes.login.path}';
65+
// Only redirect to /auth/login if currently at /auth
66+
if (state.path == Routes.auth.path) {
67+
return '${Routes.auth.path}${Routes.login.path}';
68+
}
69+
70+
/// Continue to auth routes
71+
return null;
6672
},
6773
routes: [
6874
GoRoute(
@@ -80,13 +86,18 @@ class Routers {
8086
GoRoute(
8187
name: Routes.app.name,
8288
path: Routes.app.path,
83-
builder: (context, state) => const SplashPage(),
8489
redirect: (context, state) {
85-
if (!getIt<AuthCubit>().isLoggedIn()) {
90+
if (!context.read<AuthCubit>().isLoggedIn()) {
8691
return '${Routes.auth.path}${Routes.login.path}';
8792
}
8893

89-
return '${Routes.app.path}${Routes.home.path}';
94+
// Only redirect to /app/home if currently at /app
95+
if (state.path == Routes.app.path) {
96+
return '${Routes.app.path}${Routes.home.path}';
97+
}
98+
99+
/// Continue to app routes
100+
return null;
90101
},
91102
routes: [
92103
GoRoute(

0 commit comments

Comments
 (0)