import 'package:app_flowy/workspace/application/app/app_bloc.dart'; import 'package:app_flowy/workspace/application/app/app_watch_bloc.dart'; import 'package:app_flowy/workspace/application/doc/doc_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_watch.dart'; import 'package:app_flowy/workspace/application/view/doc_watch_bloc.dart'; import 'package:app_flowy/workspace/application/view/view_bloc.dart'; import 'package:app_flowy/workspace/application/view/view_list_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_editor/flowy_editor.dart'; import 'package:flowy_sdk/protobuf/flowy-user/user_detail.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(() => HomePageStack()); //App getIt.registerFactoryParam( (appId, _) => IAppImpl(repo: AppRepository(appId: appId))); getIt.registerFactoryParam( (appId, _) => IAppWatchImpl(repo: AppWatchRepository(appId: appId))); //workspace getIt.registerFactoryParam( (user, workspaceId) => IWorkspaceImpl( repo: WorkspaceRepo(user: user, workspaceId: workspaceId))); getIt.registerFactoryParam( (user, workspaceId) => IWorkspaceWatchImpl( repo: WorkspaceWatchRepo(user: user, workspaceId: workspaceId))); // View getIt.registerFactoryParam( (view, _) => IViewImpl(repo: ViewRepository(view: view))); getIt.registerFactoryParam( (view, _) => IViewWatchImpl(repo: ViewWatchRepository(view: view))); // Doc getIt.registerFactoryParam( (docId, _) => IDocImpl(repo: DocRepository(docId: docId))); // User getIt.registerFactoryParam( (user, _) => IUserImpl(repo: UserRepo(user: user))); getIt.registerFactoryParam( (user, _) => IUserWatchImpl(repo: UserWatchRepo(user: user))); //Menu Bloc getIt.registerFactoryParam( (user, workspaceId) => MenuBloc(getIt(param1: user, param2: workspaceId))); getIt.registerFactoryParam( (user, workspaceId) => MenuWatchBloc( getIt(param1: user, param2: workspaceId))); getIt.registerFactoryParam( (user, _) => MenuUserBloc(getIt(param1: user))); // getIt.registerFactoryParam( (appId, _) => AppBloc(getIt(param1: appId))); getIt.registerFactoryParam( (appId, _) => AppWatchBloc(getIt(param1: appId))); getIt.registerFactoryParam( (viewId, _) => ViewBloc(iViewImpl: getIt(param1: viewId))); getIt.registerFactoryParam( (docId, _) => DocWatchBloc(iDocImpl: getIt(param1: docId))); getIt.registerFactoryParam( (docId, _) => DocBloc(getIt(param1: docId))); // editor getIt.registerFactoryParam( (docId, _) => EditorPersistenceImpl(repo: DocRepository(docId: docId))); getIt.registerFactoryParam, void>( (views, _) => ViewListBloc(views: views)); // getIt.registerFactoryParam( // (viewId, _) => ViewBloc(iViewImpl: getIt(param1: viewId))); } }