Skip to content

Commit 6803745

Browse files
committed
fix: fetching history in real time takes time to load
1 parent b75b736 commit 6803745

File tree

6 files changed

+43
-26
lines changed

6 files changed

+43
-26
lines changed

lib/app/view/app.dart

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import 'package:flutter_secure_storage/flutter_secure_storage.dart';
44
import 'package:qack/gen/fonts.gen.dart';
55
import 'package:qack/l10n/arb/app_localizations.dart';
66
import 'package:qack/layout/device_info_setter.dart';
7+
import 'package:qack/presentation/history/bloc/history_bloc.dart';
8+
import 'package:qack/presentation/history/repositories/repositories.dart';
79
import 'package:qack/presentation/home/bloc/home_bloc.dart';
810
import 'package:qack/presentation/home/repositories/repositories.dart';
911
import 'package:qack/presentation/landing/components/cubit/bottom_navigation_bar_cubit.dart';
@@ -18,12 +20,14 @@ class App extends StatelessWidget {
1820
const App({
1921
required this.secureStorage,
2022
required this.settingsBloc,
23+
required this.historyBloc,
2124
required this.appDatabase,
2225
super.key,
2326
});
2427

2528
final FlutterSecureStorage secureStorage;
2629
final SettingsBloc settingsBloc;
30+
final HistoryBloc historyBloc;
2731
final AppDatabase appDatabase;
2832

2933
@override
@@ -40,14 +44,18 @@ class App extends StatelessWidget {
4044
create: (context) => HomeRepository(storage: secureStorage),
4145
),
4246
],
43-
child: _App(settingsBloc: settingsBloc),
47+
child: _App(
48+
settingsBloc: settingsBloc,
49+
historyBloc: historyBloc,
50+
),
4451
);
4552
}
4653
}
4754

4855
class _App extends StatelessWidget {
49-
const _App({required this.settingsBloc});
56+
const _App({required this.settingsBloc, required this.historyBloc});
5057
final SettingsBloc settingsBloc;
58+
final HistoryBloc historyBloc;
5159

5260
@override
5361
Widget build(BuildContext context) {
@@ -61,6 +69,9 @@ class _App extends StatelessWidget {
6169
appDatabase: context.read<AppDatabase>(),
6270
),
6371
),
72+
BlocProvider(
73+
create: (context) => historyBloc,
74+
),
6475
BlocProvider(create: (context) => BottomNavigationBarCubit()),
6576
],
6677
child: const AppView(),

lib/bootstrap.dart

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import 'package:flutter_secure_storage/flutter_secure_storage.dart';
77
import 'package:get_it/get_it.dart';
88
import 'package:http_client/http_client.dart';
99
import 'package:qack/constants/key_name.dart';
10+
import 'package:qack/presentation/history/bloc/history_bloc.dart';
11+
import 'package:qack/presentation/history/repositories/repositories.dart';
1012
import 'package:qack/presentation/settings/bloc/settings_bloc.dart';
1113
import 'package:qack/presentation/settings/respository/settings_repository.dart';
1214
import 'package:qack/utils/database/database.dart';
@@ -38,6 +40,7 @@ Future<void> bootstrap(
3840
FutureOr<Widget> Function(
3941
FlutterSecureStorage secureStorage,
4042
SettingsBloc settingsBloc,
43+
HistoryBloc historyBloc,
4144
AppDatabase appDatabase,
4245
) builder,
4346
) async {
@@ -85,10 +88,15 @@ Future<void> bootstrap(
8588
SettingsFetch(await settingsRepository.getAPIKey()),
8689
);
8790

91+
// Initialize history bloc
92+
final historyBloc = HistoryBloc(
93+
HistoryRepository(appDatabase: appDatabase),
94+
)..add(const HistoryFetched());
95+
8896
// Initialize HTTP repository
8997
GetIt.instance.registerLazySingleton<Http>(Http.new);
9098

9199
Bloc.observer = const AppBlocObserver();
92100

93-
runApp(await builder(secureStorage, settingsBloc, appDatabase));
101+
runApp(await builder(secureStorage, settingsBloc, historyBloc, appDatabase));
94102
}

lib/main_development.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import 'package:flutter_secure_storage/flutter_secure_storage.dart';
33
import 'package:qack/app/view/app.dart';
44
import 'package:qack/bootstrap.dart';
55
import 'package:qack/constants/key_name.dart';
6+
import 'package:qack/presentation/history/bloc/history_bloc.dart';
67
import 'package:qack/presentation/settings/bloc/settings_bloc.dart';
78
import 'package:qack/utils/database/database.dart';
89
import 'package:sentry_flutter/sentry_flutter.dart';
@@ -33,11 +34,13 @@ Future<void> main() async {
3334
await bootstrap(transaction, (
3435
FlutterSecureStorage secureStorage,
3536
SettingsBloc settingsBloc,
37+
HistoryBloc historyBloc,
3638
AppDatabase appDatabase,
3739
) async {
3840
return App(
3941
secureStorage: secureStorage,
4042
settingsBloc: settingsBloc,
43+
historyBloc: historyBloc,
4144
appDatabase: appDatabase,
4245
);
4346
});

lib/main_production.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import 'package:flutter_secure_storage/flutter_secure_storage.dart';
33
import 'package:qack/app/view/app.dart';
44
import 'package:qack/bootstrap.dart';
55
import 'package:qack/constants/constants.dart';
6+
import 'package:qack/presentation/history/bloc/history_bloc.dart';
67
import 'package:qack/presentation/settings/bloc/settings_bloc.dart';
78
import 'package:qack/utils/database/database.dart';
89
import 'package:sentry_flutter/sentry_flutter.dart';
@@ -32,11 +33,13 @@ Future<void> main() async {
3233
await bootstrap(transaction, (
3334
FlutterSecureStorage secureStorage,
3435
SettingsBloc settingsBloc,
36+
HistoryBloc historyBloc,
3537
AppDatabase appDatabase,
3638
) async {
3739
return App(
3840
secureStorage: secureStorage,
3941
settingsBloc: settingsBloc,
42+
historyBloc: historyBloc,
4043
appDatabase: appDatabase,
4144
);
4245
});

lib/main_staging.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import 'package:flutter_secure_storage/flutter_secure_storage.dart';
33
import 'package:qack/app/view/app.dart';
44
import 'package:qack/bootstrap.dart';
55
import 'package:qack/constants/constants.dart';
6+
import 'package:qack/presentation/history/bloc/history_bloc.dart';
67
import 'package:qack/presentation/settings/bloc/settings_bloc.dart';
78
import 'package:qack/utils/database/database.dart';
89
import 'package:sentry_flutter/sentry_flutter.dart';
@@ -32,11 +33,13 @@ Future<void> main() async {
3233
await bootstrap(transaction, (
3334
FlutterSecureStorage secureStorage,
3435
SettingsBloc settingsBloc,
36+
HistoryBloc historyBloc,
3537
AppDatabase appDatabase,
3638
) async {
3739
return App(
3840
secureStorage: secureStorage,
3941
settingsBloc: settingsBloc,
42+
historyBloc: historyBloc,
4043
appDatabase: appDatabase,
4144
);
4245
});

lib/presentation/history/view/history_page.dart

Lines changed: 12 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -14,24 +14,19 @@ class HistoryPage extends StatelessWidget {
1414

1515
@override
1616
Widget build(BuildContext context) {
17-
return BlocProvider(
18-
create: (context) => HistoryBloc(
19-
HistoryRepository(appDatabase: context.read<AppDatabase>()),
20-
),
21-
child: const LayoutHandler(
22-
mobile: HistoryView(
23-
searchBarPadding: EdgeInsets.only(
24-
top: 16,
25-
left: PaddingConstants.mobileHorizontalMarginValue,
26-
right: PaddingConstants.mobileHorizontalMarginValue,
27-
),
17+
return const LayoutHandler(
18+
mobile: HistoryView(
19+
searchBarPadding: EdgeInsets.only(
20+
top: 16,
21+
left: PaddingConstants.mobileHorizontalMarginValue,
22+
right: PaddingConstants.mobileHorizontalMarginValue,
2823
),
29-
tablet: HistoryView(
30-
searchBarPadding: EdgeInsets.only(
31-
top: 24,
32-
left: PaddingConstants.tabletHorizontalMarginValue,
33-
right: PaddingConstants.tabletHorizontalMarginValue,
34-
),
24+
),
25+
tablet: HistoryView(
26+
searchBarPadding: EdgeInsets.only(
27+
top: 24,
28+
left: PaddingConstants.tabletHorizontalMarginValue,
29+
right: PaddingConstants.tabletHorizontalMarginValue,
3530
),
3631
),
3732
);
@@ -48,12 +43,6 @@ class HistoryView extends StatefulWidget {
4843
}
4944

5045
class _HistoryViewState extends State<HistoryView> {
51-
@override
52-
void initState() {
53-
context.read<HistoryBloc>().add(const HistoryFetched());
54-
super.initState();
55-
}
56-
5746
@override
5847
Widget build(BuildContext context) {
5948
const theme = LightTheme();

0 commit comments

Comments
 (0)