| 
					
				 | 
			
			
				@@ -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/domain/page_stack/page_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/startup/startup.dart'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import 'package:flowy_log/flowy_log.dart'; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -13,29 +14,6 @@ import 'package:styled_widget/styled_widget.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 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   static GlobalKey<ScaffoldState> scaffoldKey = GlobalKey(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   final UserProfile user; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -92,7 +70,14 @@ class HomeScreen extends StatelessWidget { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           layout: layout, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           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; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  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( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       children: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         homeMenu 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -146,6 +136,13 @@ class HomeScreen extends StatelessWidget { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               isClosed: !layout.showEditPannel, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             .positioned(right: 0, top: 0, bottom: 0, width: layout.editPannelWidth), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        bubble 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            .positioned( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              right: 20, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              bottom: 20, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              animate: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            .animate(layout.animDuration, Curves.easeOut), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 |