Skip to content

Commit 6044c01

Browse files
committed
update
1 parent 37f0d1a commit 6044c01

File tree

22 files changed

+213
-129
lines changed

22 files changed

+213
-129
lines changed

assets/icons/home.svg

Lines changed: 44 additions & 0 deletions
Loading

assets/icons/speech-bubble.svg

Lines changed: 0 additions & 44 deletions
This file was deleted.

assets/icons/speech.svg

Lines changed: 59 additions & 0 deletions
Loading

assets/images/add_address.png

25.8 KB
Loading

assets/images/no_record.png

219 KB
Loading

lib/app_view.dart

Lines changed: 32 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
import 'package:e_commerce_app/bottom_navigation.dart';
21
import 'package:e_commerce_app/configs/application.dart';
3-
import 'package:e_commerce_app/presentation/screens/login/login_screen.dart';
4-
import 'package:e_commerce_app/presentation/screens/splash/splash_screen.dart';
52
import 'package:flutter_localizations/flutter_localizations.dart';
63
import 'package:flutter/material.dart';
74
import 'package:flutter_bloc/flutter_bloc.dart';
@@ -20,6 +17,10 @@ class AppView extends StatefulWidget {
2017
}
2118

2219
class _AppViewState extends State<AppView> {
20+
final _navigatorKey = GlobalKey<NavigatorState>();
21+
22+
NavigatorState? get _navigator => _navigatorKey.currentState;
23+
2324
@override
2425
void initState() {
2526
CommonBloc.applicationBloc.add(SetupApplication());
@@ -32,6 +33,10 @@ class _AppViewState extends State<AppView> {
3233
super.dispose();
3334
}
3435

36+
void onNavigate(String route) {
37+
_navigator!.pushNamedAndRemoveUntil(route, (route) => false);
38+
}
39+
3540
void loadData() {
3641
// Only load data when authenticated
3742
BlocProvider.of<ProfileBloc>(context).add(LoadProfile());
@@ -40,15 +45,17 @@ class _AppViewState extends State<AppView> {
4045

4146
@override
4247
Widget build(BuildContext context) {
43-
return BlocBuilder<LanguageBloc, LanguageState>(
44-
builder: (context, state) {
45-
return BlocBuilder<AuthenticationBloc, AuthenticationState>(
46-
builder: (context, authState) {
48+
return BlocBuilder<ApplicationBloc, ApplicationState>(
49+
builder: (context, applicationState) {
50+
return BlocBuilder<LanguageBloc, LanguageState>(
51+
builder: (context, state) {
4752
return MaterialApp(
53+
navigatorKey: _navigatorKey,
4854
debugShowCheckedModeBanner: Application.debug,
4955
title: Application.title,
5056
theme: AppTheme.currentTheme,
5157
onGenerateRoute: AppRouter.generateRoute,
58+
initialRoute: AppRouter.SPLASH,
5259
locale: AppLanguage.defaultLanguage,
5360
supportedLocales: AppLanguage.supportLanguage,
5461
localizationsDelegates: [
@@ -57,20 +64,25 @@ class _AppViewState extends State<AppView> {
5764
GlobalWidgetsLocalizations.delegate,
5865
GlobalCupertinoLocalizations.delegate,
5966
],
60-
home: BlocBuilder<ApplicationBloc, ApplicationState>(
61-
builder: (context, applicationState) {
62-
if (applicationState is ApplicationCompleted) {
63-
if (authState is Unauthenticated) {
64-
return LoginScreen();
65-
}
66-
if (authState is Authenticated) {
67-
loadData();
68-
return BottomNavigation();
67+
builder: (context, child) {
68+
return BlocListener<AuthenticationBloc, AuthenticationState>(
69+
listener: (context, authState) {
70+
if (applicationState is ApplicationCompleted) {
71+
if (authState is Unauthenticated) {
72+
onNavigate(AppRouter.LOGIN);
73+
} else if (authState is Uninitialized) {
74+
onNavigate(AppRouter.SPLASH);
75+
} else if (authState is Authenticated) {
76+
loadData();
77+
onNavigate(AppRouter.HOME);
78+
}
79+
} else {
80+
onNavigate(AppRouter.SPLASH);
6981
}
70-
}
71-
return SplashScreen();
72-
},
73-
),
82+
},
83+
child: child,
84+
);
85+
},
7486
);
7587
},
7688
);

lib/configs/router.dart

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import 'package:e_commerce_app/bottom_navigation.dart';
12
import 'package:e_commerce_app/presentation/screens/chat/chat_screen.dart';
23
import 'package:e_commerce_app/presentation/screens/detail_order_screen.dart/detail_order_screen.dart';
34
import 'package:e_commerce_app/presentation/screens/map/map_screen.dart';
@@ -11,22 +12,19 @@ import 'package:e_commerce_app/presentation/screens/cart/cart_screen.dart';
1112
import 'package:e_commerce_app/presentation/screens/detail_product/detail_product_screen.dart';
1213
import 'package:e_commerce_app/presentation/screens/feedbacks/feedbacks_screen.dart';
1314
import 'package:e_commerce_app/presentation/screens/initialize_info/initialize_info_screen.dart';
14-
import 'package:e_commerce_app/presentation/screens/profile/profile_screen.dart';
1515
import 'package:e_commerce_app/presentation/screens/settings/setting_screen.dart';
16-
import 'package:e_commerce_app/presentation/screens/home_page/home_screen.dart';
1716
import 'package:e_commerce_app/presentation/screens/login/login_screen.dart';
1817
import 'package:e_commerce_app/presentation/screens/register/register_screen.dart';
1918
import 'package:e_commerce_app/presentation/screens/splash/splash_screen.dart';
2019
import 'package:e_commerce_app/presentation/screens/product_images/product_images_screen.dart';
2120

2221
class AppRouter {
23-
static const String HOME = '/home';
2422
static const String SPLASH = '/splash';
2523
static const String LOGIN = '/login';
2624
static const String INITIALIZE_INFO = '/initialize_info';
2725
static const String REGISTER = '/register';
28-
static const String BOTTOM_NAVIGATION = '/bottom_navigation';
2926
static const String FORGOT_PASSWORD = '/forgot_password';
27+
static const String HOME = '/home';
3028
static const String PROFILE = '/profile';
3129
static const String DETAIL_PRODUCT = '/detail_product';
3230
static const String PRODUCT_IMAGES = '/product_images';
@@ -64,11 +62,7 @@ class AppRouter {
6462
);
6563
case HOME:
6664
return MaterialPageRoute(
67-
builder: (_) => HomeScreen(),
68-
);
69-
case PROFILE:
70-
return MaterialPageRoute(
71-
builder: (_) => ProfileScreen(),
65+
builder: (_) => BottomNavigation(),
7266
);
7367
case SETTING:
7468
return MaterialPageRoute(

lib/constants/icon_constant.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
class ICON_CONST {
2-
static const HOME = "assets/icons/Shop Icon.svg";
3-
static const MESSAGE = "assets/icons/speech-bubble.svg";
2+
static const HOME = "assets/icons/home.svg";
3+
static const MESSAGE = "assets/icons/speech.svg";
44
static const USER = "assets/icons/User Icon.svg";
55
static const SETTING = "assets/icons/Settings.svg";
66
static const CART = "assets/icons/shopping-bag.svg";

lib/constants/image_constant.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ class IMAGE_CONST {
22
static const APP_LOGO = "assets/images/ic_launcher.png";
33
static const CART_EMPTY = "assets/images/empty_cart.png";
44
static const NOT_FOUND = "assets/images/Not Found.png";
5+
static const NO_RECORD = "assets/images/no_record.png";
56
static const SUCCESS = "assets/images/success.png";
67
static const DEFAULT_AVATAR = "assets/images/default_avatar.jpg";
78
static const ADD_ADDRESS = "assets/images/add_address.jpg";

lib/presentation/screens/cart/widgets/payment_bottom_sheet.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,6 @@ class _PaymentBottomSheetState extends State<PaymentBottomSheet> {
110110
padding: EdgeInsets.symmetric(vertical: SizeConfig.defaultPadding),
111111
child: Column(
112112
mainAxisSize: MainAxisSize.min,
113-
crossAxisAlignment: CrossAxisAlignment.start,
114113
children: [
115114
_buildHeader(),
116115
_buildDeliveryAddress(),

0 commit comments

Comments
 (0)