import 'package:app_flowy/workspace/application/app/app_bloc.dart'; import 'package:app_flowy/workspace/application/app/app_listen_bloc.dart'; import 'package:app_flowy/workspace/application/doc/doc_bloc.dart'; import 'package:app_flowy/workspace/application/doc/doc_edit_bloc.dart'; import 'package:app_flowy/workspace/application/menu/menu_bloc.dart'; import 'package:app_flowy/workspace/application/menu/menu_user_bloc.dart'; import 'package:app_flowy/workspace/application/menu/menu_listen.dart'; import 'package:app_flowy/workspace/application/view/view_bloc.dart'; import 'package:app_flowy/workspace/application/view/view_edit_bloc.dart'; import 'package:app_flowy/workspace/application/workspace/welcome_bloc.dart'; import 'package:app_flowy/workspace/domain/i_doc.dart'; import 'package:app_flowy/workspace/domain/i_view.dart'; import 'package:app_flowy/workspace/domain/page_stack/page_stack.dart'; import 'package:app_flowy/workspace/infrastructure/i_app_impl.dart'; import 'package:app_flowy/workspace/infrastructure/i_doc_impl.dart'; import 'package:app_flowy/workspace/infrastructure/i_workspace_impl.dart'; import 'package:app_flowy/workspace/infrastructure/repos/app_repo.dart'; import 'package:app_flowy/workspace/infrastructure/repos/doc_repo.dart'; import 'package:app_flowy/workspace/infrastructure/repos/view_repo.dart'; import 'package:app_flowy/workspace/infrastructure/repos/workspace_repo.dart'; import 'package:flowy_sdk/protobuf/flowy-user/user_profile.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-workspace/view_create.pb.dart'; import 'package:get_it/get_it.dart'; import 'i_user_impl.dart'; import 'i_view_impl.dart'; class HomeDepsResolver { static Future resolve(GetIt getIt) async { // getIt.registerLazySingleton(() => HomeStackManager()); //App getIt.registerFactoryParam((appId, _) => IAppImpl(repo: AppRepository(appId: appId))); getIt.registerFactoryParam( (appId, _) => IAppListenerhImpl(repo: AppListenerRepository(appId: appId))); //workspace getIt.registerFactoryParam( (user, workspaceId) => IWorkspaceImpl(repo: WorkspaceRepo(user: user, workspaceId: workspaceId))); getIt.registerFactoryParam((user, workspaceId) => IWorkspaceListenerImpl(repo: WorkspaceListenerRepo(user: user, workspaceId: workspaceId))); // View getIt.registerFactoryParam((view, _) => IViewImpl(repo: ViewRepository(view: view))); getIt.registerFactoryParam( (view, _) => IViewListenerImpl(repo: ViewListenerRepository(view: view))); // Doc getIt.registerFactoryParam((docId, _) => IDocImpl(repo: DocRepository(docId: docId))); // User getIt.registerFactoryParam((user, _) => IUserImpl(repo: UserRepo(user: user))); getIt.registerFactoryParam((user, _) => IUserListenerImpl(user: user)); //Menu Bloc getIt.registerFactoryParam( (user, workspaceId) => MenuBloc(getIt(param1: user, param2: workspaceId))); getIt.registerFactoryParam( (user, workspaceId) => MenuListenBloc(getIt(param1: user, param2: workspaceId))); getIt.registerFactoryParam( (user, _) => MenuUserBloc(getIt(param1: user), getIt(param1: user))); // getIt.registerFactoryParam((appId, _) => AppBloc(getIt(param1: appId))); getIt.registerFactoryParam( (appId, _) => AppListenBloc(getIt(param1: appId))); getIt.registerFactoryParam((view, _) => ViewBloc(iViewImpl: getIt(param1: view))); getIt.registerFactoryParam((docId, _) => DocBloc(iDocImpl: getIt(param1: docId))); getIt.registerFactoryParam((docId, _) => DocEditBloc(getIt(param1: docId))); getIt.registerFactoryParam( (user, _) => WelcomeBloc( repo: UserRepo(user: user), watch: getIt(param1: user), ), ); } }