home_deps_resolver.dart 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. import 'package:app_flowy/user/application/user_listener.dart';
  2. import 'package:app_flowy/user/application/user_service.dart';
  3. import 'package:app_flowy/workspace/application/app/prelude.dart';
  4. import 'package:app_flowy/workspace/application/doc/prelude.dart';
  5. import 'package:app_flowy/workspace/application/grid/prelude.dart';
  6. import 'package:app_flowy/workspace/application/trash/prelude.dart';
  7. import 'package:app_flowy/workspace/application/workspace/prelude.dart';
  8. import 'package:app_flowy/workspace/application/view/prelude.dart';
  9. import 'package:app_flowy/workspace/application/home/prelude.dart';
  10. import 'package:app_flowy/workspace/application/menu/prelude.dart';
  11. import 'package:app_flowy/workspace/presentation/home/home_stack.dart';
  12. import 'package:flowy_sdk/protobuf/flowy-folder-data-model/app.pb.dart';
  13. import 'package:flowy_sdk/protobuf/flowy-folder-data-model/view.pb.dart';
  14. import 'package:flowy_sdk/protobuf/flowy-user-data-model/user_profile.pb.dart';
  15. import 'package:get_it/get_it.dart';
  16. class HomeDepsResolver {
  17. static Future<void> resolve(GetIt getIt) async {
  18. getIt.registerFactoryParam<UserListener, UserProfile, void>(
  19. (user, _) => UserListener(user: user),
  20. );
  21. getIt.registerFactoryParam<HomeListenBloc, UserProfile, void>(
  22. (user, _) => HomeListenBloc(getIt<UserListener>(param1: user)),
  23. );
  24. //
  25. getIt.registerLazySingleton<HomeStackManager>(() => HomeStackManager());
  26. getIt.registerFactoryParam<WelcomeBloc, UserProfile, void>(
  27. (user, _) => WelcomeBloc(
  28. userService: UserService(),
  29. userListener: getIt<UserListener>(param1: user),
  30. ),
  31. );
  32. //workspace
  33. getIt.registerFactoryParam<WorkspaceListener, UserProfile, String>((user, workspaceId) =>
  34. WorkspaceListener(service: WorkspaceListenerService(user: user, workspaceId: workspaceId)));
  35. // View
  36. getIt.registerFactoryParam<ViewListener, View, void>(
  37. (view, _) => ViewListener(view: view),
  38. );
  39. getIt.registerFactoryParam<ViewBloc, View, void>(
  40. (view, _) => ViewBloc(
  41. view: view,
  42. service: ViewService(),
  43. listener: getIt<ViewListener>(param1: view),
  44. ),
  45. );
  46. //Menu Bloc
  47. getIt.registerFactoryParam<MenuBloc, UserProfile, String>(
  48. (user, workspaceId) => MenuBloc(
  49. workspaceId: workspaceId,
  50. service: WorkspaceService(),
  51. listener: getIt<WorkspaceListener>(param1: user, param2: workspaceId),
  52. ),
  53. );
  54. getIt.registerFactoryParam<MenuUserBloc, UserProfile, void>(
  55. (user, _) => MenuUserBloc(
  56. user,
  57. UserService(),
  58. getIt<UserListener>(param1: user),
  59. ),
  60. );
  61. // App
  62. getIt.registerFactoryParam<AppBloc, App, void>(
  63. (app, _) => AppBloc(
  64. app: app,
  65. service: AppService(),
  66. listener: AppListener(appId: app.id),
  67. ),
  68. );
  69. // Doc
  70. getIt.registerFactoryParam<DocumentBloc, View, void>(
  71. (view, _) => DocumentBloc(
  72. view: view,
  73. service: DocumentService(),
  74. listener: getIt<ViewListener>(param1: view),
  75. trashService: getIt<TrashService>(),
  76. ),
  77. );
  78. // Grid
  79. getIt.registerFactoryParam<GridBloc, View, void>(
  80. (view, _) => GridBloc(
  81. view: view,
  82. service: GridService(),
  83. ),
  84. );
  85. getIt.registerFactoryParam<RowBloc, GridRowData, void>(
  86. (data, _) => RowBloc(
  87. data: data,
  88. service: RowService(),
  89. ),
  90. );
  91. // trash
  92. getIt.registerLazySingleton<TrashService>(() => TrashService());
  93. getIt.registerLazySingleton<TrashListener>(() => TrashListener());
  94. getIt.registerFactory<TrashBloc>(
  95. () => TrashBloc(
  96. service: getIt<TrashService>(),
  97. listener: getIt<TrashListener>(),
  98. ),
  99. );
  100. // share
  101. getIt.registerLazySingleton<ShareService>(() => ShareService());
  102. getIt.registerFactoryParam<DocShareBloc, View, void>(
  103. (view, _) => DocShareBloc(view: view, service: getIt<ShareService>()));
  104. }
  105. }