Skip to content

Commit

Permalink
refactor: move BlocProviders to app root
Browse files Browse the repository at this point in the history
- WorkTypeListBloc
- WorkMonthListBloc
- SettingsBloc
  • Loading branch information
sipasi committed Nov 14, 2024
1 parent fc088b8 commit fca6662
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 23 deletions.
39 changes: 38 additions & 1 deletion lib/main.dart
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:get_it/get_it.dart';
import 'package:open_work_flutter/services/dependency/dependency_setter.dart';
import 'package:open_work_flutter/theme/app_theme.dart';
import 'package:open_work_flutter/theme/theme_storage.dart';
import 'package:open_work_flutter/theme/theme_switcher.dart';
import 'package:open_work_flutter/theme/theme_switcher_widget.dart';
import 'package:open_work_flutter/view/home/cubit/home_cubit.dart';
import 'package:open_work_flutter/view/home/home_page.dart';
import 'package:open_work_flutter/view/settings/bloc/settings_bloc.dart';
import 'package:open_work_flutter/view/work_month/list/bloc/work_month_list_bloc.dart';
import 'package:open_work_flutter/view/work_type/list/bloc/work_type_list_bloc.dart';

void main() async {
WidgetsFlutterBinding.ensureInitialized();
Expand Down Expand Up @@ -38,10 +42,43 @@ class OpenWorkApp extends StatelessWidget {
darkTheme: theme.asDark(),
home: MultiBlocProvider(
providers: [
BlocProvider(create: (context) => HomeCubit()),
_homeProvider(),
_typeListProvider(),
_monthListProvider(),
_settingsProvider(),
],
child: const HomePage(),
),
);
}

BlocProvider<HomeCubit> _homeProvider() {
return BlocProvider(create: (context) => HomeCubit());
}

BlocProvider<WorkTypeListBloc> _typeListProvider() {
return BlocProvider(
lazy: false,
create: (context) => WorkTypeListBloc(
typeStorage: GetIt.I.get(),
)..add(WorkTypeListLoadRequested()),
);
}

BlocProvider<WorkMonthListBloc> _monthListProvider() {
return BlocProvider(
lazy: false,
create: (context) => WorkMonthListBloc(
monthStorage: GetIt.I.get(),
typeStorage: GetIt.I.get(),
)..add(WorkMonthListLoadRequested()),
);
}

BlocProvider<SettingsBloc> _settingsProvider() {
return BlocProvider(
lazy: false,
create: (context) => SettingsBloc(),
);
}
}
5 changes: 1 addition & 4 deletions lib/view/settings/settings_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,7 @@ class SettingsPage extends StatelessWidget {

@override
Widget build(BuildContext context) {
return BlocProvider(
create: (context) => SettingsBloc(),
child: SettingsView(),
);
return SettingsView();
}
}

Expand Down
9 changes: 1 addition & 8 deletions lib/view/work_month/list/work_month_list_page.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:get_it/get_it.dart';
import 'package:open_work_flutter/view/shared/bloc/global_key_bloc_reader.dart';
import 'package:open_work_flutter/view/shared/layouts/adaptive_grid_view.dart';
import 'package:open_work_flutter/view/work_month/detail/work_month_details_page.dart';
Expand All @@ -19,13 +18,7 @@ class WorkMonthListPage extends StatelessWidget {

@override
Widget build(BuildContext context) {
return BlocProvider(
create: (context) => WorkMonthListBloc(
monthStorage: GetIt.I.get(),
typeStorage: GetIt.I.get(),
)..add(WorkMonthListLoadRequested()),
child: WorkMonthListView(contextAccessKey: _contextAccessKey),
);
return WorkMonthListView(contextAccessKey: _contextAccessKey);
}
}

Expand Down
5 changes: 3 additions & 2 deletions lib/view/work_type/list/bloc/work_type_list_bloc.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,12 @@ part 'work_type_list_event.dart';
part 'work_type_list_state.dart';

class WorkTypeListBloc extends Bloc<WorkTypeListEvent, WorkTypeListState> {
WorkTypeListBloc(TypeStorage storage) : super(WorkTypeListState()) {
WorkTypeListBloc({required TypeStorage typeStorage})
: super(WorkTypeListState()) {
on<WorkTypeListLoadRequested>((event, emit) async {
emit(state.copyWith());

final types = await storage.getAll();
final types = await typeStorage.getAll();

emit(state.copyWith(types: types));
});
Expand Down
9 changes: 1 addition & 8 deletions lib/view/work_type/list/work_type_list_page.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:get_it/get_it.dart';
import 'package:open_work_flutter/data/models/work_type.dart';
import 'package:open_work_flutter/view/shared/bloc/global_key_bloc_reader.dart';
import 'package:open_work_flutter/view/shared/layouts/adaptive_grid_view.dart';
Expand All @@ -17,13 +16,7 @@ class WorkTypeListPage extends StatelessWidget {

@override
Widget build(BuildContext context) {
return BlocProvider(
create: (context) {
return WorkTypeListBloc(GetIt.I.get())
..add(WorkTypeListLoadRequested());
},
child: WorkTypeListView(contextAccessKey: _contextAccessKey),
);
return WorkTypeListView(contextAccessKey: _contextAccessKey);
}
}

Expand Down

0 comments on commit fca6662

Please sign in to comment.