Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 143e87e

Browse files
committed
refactor(dashboard): remove app config from dashboard
- Removed app config from dashboard bloc - Removed app config from dashboard state - Removed app config from dashboard UI - Simplified data fetching logic - Improved code readability
1 parent 985f093 commit 143e87e

File tree

4 files changed

+4
-94
lines changed

4 files changed

+4
-94
lines changed

‎lib/app/view/app.dart‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,6 @@ class App extends StatelessWidget {
112112
create: (context) => DashboardBloc(
113113
dashboardSummaryRepository: context
114114
.read<HtDataRepository<DashboardSummary>>(),
115-
appConfigRepository: context
116-
.read<HtDataRepository<RemoteConfig>>(),
117115
headlinesRepository: context.read<HtDataRepository<Headline>>(),
118116
),
119117
),

‎lib/dashboard/bloc/dashboard_bloc.dart‎

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import 'package:bloc/bloc.dart';
22
import 'package:equatable/equatable.dart';
33
import 'package:ht_data_repository/ht_data_repository.dart';
4-
import 'package:ht_shared/ht_shared.dart';
4+
import 'package:ht_shared/ht_shared.dart';
55

66
part 'dashboard_event.dart';
77
part 'dashboard_state.dart';
@@ -11,17 +11,14 @@ class DashboardBloc extends Bloc<DashboardEvent, DashboardState> {
1111
/// {@macro dashboard_bloc}
1212
DashboardBloc({
1313
required HtDataRepository<DashboardSummary> dashboardSummaryRepository,
14-
required HtDataRepository<RemoteConfig> appConfigRepository,
1514
required HtDataRepository<Headline> headlinesRepository,
1615
}) : _dashboardSummaryRepository = dashboardSummaryRepository,
17-
_appConfigRepository = appConfigRepository,
1816
_headlinesRepository = headlinesRepository,
1917
super(const DashboardState()) {
2018
on<DashboardSummaryLoaded>(_onDashboardSummaryLoaded);
2119
}
2220

2321
final HtDataRepository<DashboardSummary> _dashboardSummaryRepository;
24-
final HtDataRepository<RemoteConfig> _appConfigRepository;
2522
final HtDataRepository<Headline> _headlinesRepository;
2623

2724
Future<void> _onDashboardSummaryLoaded(
@@ -30,29 +27,25 @@ class DashboardBloc extends Bloc<DashboardEvent, DashboardState> {
3027
) async {
3128
emit(state.copyWith(status: DashboardStatus.loading));
3229
try {
33-
// Fetch summary, app config, and recent headlines concurrently
30+
// Fetch summary and recent headlines concurrently
3431
final [
3532
summaryResponse,
36-
appConfigResponse,
3733
recentHeadlinesResponse,
3834
] = await Future.wait([
3935
_dashboardSummaryRepository.read(id: kDashboardSummaryId),
40-
_appConfigRepository.read(id: kRemoteConfigId),
4136
_headlinesRepository.readAll(
4237
pagination: const PaginationOptions(limit: 5),
4338
sort: const [SortOption('createdAt', SortOrder.desc)],
4439
),
4540
]);
4641

4742
final summary = summaryResponse as DashboardSummary;
48-
final appConfig = appConfigResponse as RemoteConfig;
4943
final recentHeadlines =
5044
(recentHeadlinesResponse as PaginatedResponse<Headline>).items;
5145
emit(
5246
state.copyWith(
5347
status: DashboardStatus.success,
5448
summary: summary,
55-
appConfig: appConfig,
5649
recentHeadlines: recentHeadlines,
5750
),
5851
);

‎lib/dashboard/bloc/dashboard_state.dart‎

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,28 +20,24 @@ final class DashboardState extends Equatable {
2020
const DashboardState({
2121
this.status = DashboardStatus.initial,
2222
this.summary,
23-
this.appConfig,
2423
this.recentHeadlines = const [],
2524
this.exception,
2625
});
2726

2827
final DashboardStatus status;
2928
final DashboardSummary? summary;
30-
final RemoteConfig? appConfig;
3129
final List<Headline> recentHeadlines;
3230
final HtHttpException? exception;
3331

3432
DashboardState copyWith({
3533
DashboardStatus? status,
3634
DashboardSummary? summary,
37-
RemoteConfig? appConfig,
3835
List<Headline>? recentHeadlines,
3936
HtHttpException? exception,
4037
}) {
4138
return DashboardState(
4239
status: status ?? this.status,
4340
summary: summary ?? this.summary,
44-
appConfig: appConfig ?? this.appConfig,
4541
recentHeadlines: recentHeadlines ?? this.recentHeadlines,
4642
exception: exception ?? this.exception,
4743
);
@@ -51,7 +47,6 @@ final class DashboardState extends Equatable {
5147
List<Object?> get props => [
5248
status,
5349
summary,
54-
appConfig,
5550
recentHeadlines,
5651
exception,
5752
];

‎lib/dashboard/view/dashboard_page.dart‎

Lines changed: 2 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import 'package:flutter/material.dart';
22
import 'package:flutter_bloc/flutter_bloc.dart';
33
import 'package:go_router/go_router.dart';
44
import 'package:ht_dashboard/dashboard/bloc/dashboard_bloc.dart';
5-
import 'package:ht_dashboard/l10n/app_localizations.dart';
65
import 'package:ht_dashboard/l10n/l10n.dart';
76
import 'package:ht_dashboard/router/routes.dart';
87
import 'package:ht_dashboard/shared/shared.dart';
@@ -50,10 +49,8 @@ class _DashboardPageState extends State<DashboardPage> {
5049
);
5150
}
5251
if (state.status == DashboardStatus.success &&
53-
state.summary != null &&
54-
state.appConfig != null) {
52+
state.summary != null) {
5553
final summary = state.summary!;
56-
final appConfig = state.appConfig!;
5754
final recentHeadlines = state.recentHeadlines;
5855
return ListView(
5956
padding: const EdgeInsets.all(AppSpacing.lg),
@@ -113,15 +110,7 @@ class _DashboardPageState extends State<DashboardPage> {
113110

114111
final mainContent = [
115112
_RecentHeadlinesCard(headlines: recentHeadlines),
116-
Column(
117-
children: [
118-
_SystemStatusCard(
119-
appStatus: appConfig.appStatus,
120-
),
121-
const SizedBox(height: AppSpacing.lg),
122-
const _QuickActionsCard(),
123-
],
124-
),
113+
const _QuickActionsCard(),
125114
];
126115

127116
if (isWide) {
@@ -155,71 +144,6 @@ class _DashboardPageState extends State<DashboardPage> {
155144
}
156145
}
157146

158-
/// A card to display the current operational status of the application.
159-
class _SystemStatusCard extends StatelessWidget {
160-
const _SystemStatusCard({required this.appStatus});
161-
162-
final AppStatus appStatus;
163-
164-
@override
165-
Widget build(BuildContext context) {
166-
final l10n = context.l10n;
167-
final theme = Theme.of(context);
168-
169-
final (icon, color, text) = _getStatusDetails(appStatus, l10n, theme);
170-
171-
return Card(
172-
child: Padding(
173-
padding: const EdgeInsets.all(AppSpacing.lg),
174-
child: Column(
175-
crossAxisAlignment: CrossAxisAlignment.start,
176-
children: [
177-
Text(l10n.systemStatus, style: theme.textTheme.titleLarge),
178-
const SizedBox(height: AppSpacing.md),
179-
Row(
180-
children: [
181-
Icon(icon, color: color, size: 24),
182-
const SizedBox(width: AppSpacing.sm),
183-
Text(
184-
text,
185-
style: theme.textTheme.titleMedium?.copyWith(color: color),
186-
),
187-
],
188-
),
189-
],
190-
),
191-
),
192-
);
193-
}
194-
195-
/// Returns the appropriate icon, color, and text for a given status.
196-
(IconData, Color, String) _getStatusDetails(
197-
AppStatus appStatus,
198-
AppLocalizations l10n,
199-
ThemeData theme,
200-
) {
201-
if (appStatus.isUnderMaintenance) {
202-
return (
203-
Icons.warning_amber_outlined,
204-
theme.colorScheme.tertiary,
205-
l10n.appStatusMaintenance,
206-
);
207-
} else if (appStatus.isLatestVersionOnly) {
208-
return (
209-
Icons.cancel_outlined,
210-
theme.colorScheme.error,
211-
l10n.appStatusDisabled,
212-
);
213-
} else {
214-
return (
215-
Icons.check_circle_outline,
216-
theme.colorScheme.primary,
217-
l10n.appStatusActive,
218-
);
219-
}
220-
}
221-
}
222-
223147
/// A card providing quick navigation to common administrative tasks.
224148
class _QuickActionsCard extends StatelessWidget {
225149
const _QuickActionsCard();

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /