| 
														
															@@ -2,6 +2,7 @@ import 'package:app_flowy/workspace/application/home/home_bloc.dart'; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import 'package:app_flowy/workspace/application/home/home_listen_bloc.dart'; 
														 | 
														
														 | 
														
															 import 'package:app_flowy/workspace/application/home/home_listen_bloc.dart'; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import 'package:app_flowy/workspace/domain/page_stack/page_stack.dart'; 
														 | 
														
														 | 
														
															 import 'package:app_flowy/workspace/domain/page_stack/page_stack.dart'; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import 'package:app_flowy/workspace/presentation/stack_page/home_stack.dart'; 
														 | 
														
														 | 
														
															 import 'package:app_flowy/workspace/presentation/stack_page/home_stack.dart'; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import 'package:app_flowy/workspace/presentation/widgets/float_bubble/question_bubble.dart'; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import 'package:app_flowy/workspace/presentation/widgets/prelude.dart'; 
														 | 
														
														 | 
														
															 import 'package:app_flowy/workspace/presentation/widgets/prelude.dart'; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import 'package:app_flowy/startup/startup.dart'; 
														 | 
														
														 | 
														
															 import 'package:app_flowy/startup/startup.dart'; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import 'package:flowy_log/flowy_log.dart'; 
														 | 
														
														 | 
														
															 import 'package:flowy_log/flowy_log.dart'; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -13,29 +14,6 @@ import 'package:styled_widget/styled_widget.dart'; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import 'home_layout.dart'; 
														 | 
														
														 | 
														
															 import 'home_layout.dart'; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-// [[diagram: Home's widget structure]] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-//                                1.start listening user auth state 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-//                    ┌────────────────┐         ┌──────────────┐ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-//                 ┌─▶│ HomeListenBloc │────────▶│IUserListener │ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-//                 │  └────────────────┘         └──────────────┘ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-// ┌────────────┐  │ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-// │ HomeScreen │──┤ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-// └────────────┘  │                      ┌──────────────┐ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-//                 │                 ┌───▶│ BlocListener │ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-//                 │                 │    └──────────────┘ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-//                 │  ┌─────────┐    │                           ┌──────────┐ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-//                 └─▶│HomeBloc │────┤                      ┌───▶│HomeStack │ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-//                    └─────────┘    │                      │    └──────────┘ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-//                                   │   ┌──────────────┐   │    ┌──────────┐ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-//                                   └──▶│ BlocBuilder  │───┼───▶│ HomeMenu │ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-//                                       └──────────────┘   │    └──────────┘ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-//                                                          │    ┌──────────┐ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-//                 2.1 show login screen if user            └───▶│EditPannel│ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-//                 session is invalid                            └──────────┘ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-// 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-//                 2.2 build home screen 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-// 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-// 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 class HomeScreen extends StatelessWidget { 
														 | 
														
														 | 
														
															 class HomeScreen extends StatelessWidget { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   static GlobalKey<ScaffoldState> scaffoldKey = GlobalKey(); 
														 | 
														
														 | 
														
															   static GlobalKey<ScaffoldState> scaffoldKey = GlobalKey(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   final UserProfile user; 
														 | 
														
														 | 
														
															   final UserProfile user; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -92,7 +70,14 @@ class HomeScreen extends StatelessWidget { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           layout: layout, 
														 | 
														
														 | 
														
															           layout: layout, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           context: context, 
														 | 
														
														 | 
														
															           context: context, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         ); 
														 | 
														
														 | 
														
															         ); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        return _layoutWidgets(layout: layout, homeStack: homeStack, homeMenu: menu, editPannel: editPannel); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        const bubble = QuestionBubble(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        return _layoutWidgets( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          layout: layout, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          homeStack: homeStack, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          homeMenu: menu, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          editPannel: editPannel, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          bubble: bubble, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        ); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       }, 
														 | 
														
														 | 
														
															       }, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     ); 
														 | 
														
														 | 
														
															     ); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   } 
														 | 
														
														 | 
														
															   } 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -124,8 +109,13 @@ class HomeScreen extends StatelessWidget { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     return editPannel; 
														 | 
														
														 | 
														
															     return editPannel; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   } 
														 | 
														
														 | 
														
															   } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  Widget _layoutWidgets( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      {required HomeLayout layout, required Widget homeMenu, required Widget homeStack, required Widget editPannel}) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  Widget _layoutWidgets({ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    required HomeLayout layout, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    required Widget homeMenu, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    required Widget homeStack, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    required Widget editPannel, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    required Widget bubble, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  }) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     return Stack( 
														 | 
														
														 | 
														
															     return Stack( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       children: [ 
														 | 
														
														 | 
														
															       children: [ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         homeMenu 
														 | 
														
														 | 
														
															         homeMenu 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -146,6 +136,13 @@ class HomeScreen extends StatelessWidget { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															               isClosed: !layout.showEditPannel, 
														 | 
														
														 | 
														
															               isClosed: !layout.showEditPannel, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             ) 
														 | 
														
														 | 
														
															             ) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             .positioned(right: 0, top: 0, bottom: 0, width: layout.editPannelWidth), 
														 | 
														
														 | 
														
															             .positioned(right: 0, top: 0, bottom: 0, width: layout.editPannelWidth), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        bubble 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            .positioned( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+              right: 20, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+              bottom: 20, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+              animate: true, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            ) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            .animate(layout.animDuration, Curves.easeOut), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       ], 
														 | 
														
														 | 
														
															       ], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     ); 
														 | 
														
														 | 
														
															     ); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   } 
														 | 
														
														 | 
														
															   } 
														 |