Skip to content

Commit dc39a49

Browse files
committed
style: misc
1 parent a48193d commit dc39a49

File tree

8 files changed

+262
-218
lines changed

8 files changed

+262
-218
lines changed

lib/account/view/saved_headlines_page.dart

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ import 'package:ht_main/app/bloc/app_bloc.dart'; // Added AppBloc
77
import 'package:ht_main/l10n/l10n.dart';
88
import 'package:ht_main/router/routes.dart';
99
import 'package:ht_main/shared/shared.dart'; // Imports new headline tiles
10-
import 'package:ht_shared/ht_shared.dart' show Headline, HeadlineImageStyle; // Added HeadlineImageStyle
10+
import 'package:ht_shared/ht_shared.dart'
11+
show Headline, HeadlineImageStyle; // Added HeadlineImageStyle
1112

1213
/// {@template saved_headlines_page}
1314
/// Displays the list of headlines saved by the user.
@@ -71,20 +72,21 @@ class SavedHeadlinesPage extends StatelessWidget {
7172
separatorBuilder: (context, index) => const Divider(height: 1),
7273
itemBuilder: (context, index) {
7374
final headline = savedHeadlines[index];
74-
final imageStyle = context
75-
.watch<AppBloc>()
76-
.state
77-
.settings
78-
.feedPreferences
79-
.headlineImageStyle;
75+
final imageStyle =
76+
context
77+
.watch<AppBloc>()
78+
.state
79+
.settings
80+
.feedPreferences
81+
.headlineImageStyle;
8082

8183
final trailingButton = IconButton(
8284
icon: const Icon(Icons.delete_outline),
8385
tooltip: l10n.headlineDetailsRemoveFromSavedTooltip, // Use l10n
8486
onPressed: () {
8587
context.read<AccountBloc>().add(
86-
AccountSaveHeadlineToggled(headline: headline),
87-
);
88+
AccountSaveHeadlineToggled(headline: headline),
89+
);
8890
},
8991
);
9092

@@ -93,33 +95,36 @@ class SavedHeadlinesPage extends StatelessWidget {
9395
case HeadlineImageStyle.hidden:
9496
tile = HeadlineTileTextOnly(
9597
headline: headline,
96-
onHeadlineTap: () => context.goNamed(
97-
Routes.accountArticleDetailsName,
98-
pathParameters: {'id': headline.id},
99-
extra: headline,
100-
),
98+
onHeadlineTap:
99+
() => context.goNamed(
100+
Routes.accountArticleDetailsName,
101+
pathParameters: {'id': headline.id},
102+
extra: headline,
103+
),
101104
trailing: trailingButton,
102105
);
103106
break;
104107
case HeadlineImageStyle.smallThumbnail:
105108
tile = HeadlineTileImageStart(
106109
headline: headline,
107-
onHeadlineTap: () => context.goNamed(
108-
Routes.accountArticleDetailsName,
109-
pathParameters: {'id': headline.id},
110-
extra: headline,
111-
),
110+
onHeadlineTap:
111+
() => context.goNamed(
112+
Routes.accountArticleDetailsName,
113+
pathParameters: {'id': headline.id},
114+
extra: headline,
115+
),
112116
trailing: trailingButton,
113117
);
114118
break;
115119
case HeadlineImageStyle.largeThumbnail:
116120
tile = HeadlineTileImageTop(
117121
headline: headline,
118-
onHeadlineTap: () => context.goNamed(
119-
Routes.accountArticleDetailsName,
120-
pathParameters: {'id': headline.id},
121-
extra: headline,
122-
),
122+
onHeadlineTap:
123+
() => context.goNamed(
124+
Routes.accountArticleDetailsName,
125+
pathParameters: {'id': headline.id},
126+
extra: headline,
127+
),
123128
trailing: trailingButton,
124129
);
125130
break;

lib/app/view/app.dart

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -176,13 +176,14 @@ class _AppViewState extends State<_AppView> {
176176
},
177177
child: BlocBuilder<AppBloc, AppState>(
178178
// Build when theme-related properties change (including text scale factor)
179-
buildWhen: (previous, current) =>
180-
previous.themeMode != current.themeMode ||
181-
previous.flexScheme != current.flexScheme ||
182-
previous.fontFamily != current.fontFamily ||
183-
previous.appTextScaleFactor != current.appTextScaleFactor ||
184-
previous.locale != current.locale ||
185-
previous.settings != current.settings, // Added settings check
179+
buildWhen:
180+
(previous, current) =>
181+
previous.themeMode != current.themeMode ||
182+
previous.flexScheme != current.flexScheme ||
183+
previous.fontFamily != current.fontFamily ||
184+
previous.appTextScaleFactor != current.appTextScaleFactor ||
185+
previous.locale != current.locale ||
186+
previous.settings != current.settings, // Added settings check
186187
builder: (context, state) {
187188
print('[_AppViewState] Building MaterialApp.router');
188189
print('[_AppViewState] state.fontFamily: ${state.fontFamily}');

lib/headline-details/view/headline_details_page.dart

Lines changed: 59 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ import 'package:ht_main/headline-details/bloc/similar_headlines_bloc.dart';
1313
import 'package:ht_main/l10n/l10n.dart';
1414
import 'package:ht_main/router/routes.dart';
1515
import 'package:ht_main/shared/shared.dart';
16-
import 'package:ht_shared/ht_shared.dart' show Headline, HeadlineImageStyle; // Added HeadlineImageStyle
16+
import 'package:ht_shared/ht_shared.dart'
17+
show Headline, HeadlineImageStyle; // Added HeadlineImageStyle
1718
import 'package:intl/intl.dart';
1819
import 'package:share_plus/share_plus.dart'; // Import share_plus
1920
import 'package:url_launcher/url_launcher_string.dart';
@@ -278,43 +279,46 @@ class _HeadlineDetailsPageState extends State<HeadlineDetailsPage> {
278279
sliver: SliverToBoxAdapter(
279280
child: ClipRRect(
280281
borderRadius: BorderRadius.circular(AppSpacing.md),
281-
child: headline.imageUrl != null
282-
? Image.network(
283-
headline.imageUrl!,
284-
width: double.infinity,
285-
height: 200,
286-
fit: BoxFit.cover,
287-
loadingBuilder: (context, child, loadingProgress) {
288-
if (loadingProgress == null) return child;
289-
return Container(
290-
width: double.infinity,
291-
height: 200,
292-
color: colorScheme.surfaceContainerHighest,
293-
child:
294-
const Center(child: CircularProgressIndicator()),
295-
);
296-
},
297-
errorBuilder: (context, error, stackTrace) => Container(
282+
child:
283+
headline.imageUrl != null
284+
? Image.network(
285+
headline.imageUrl!,
286+
width: double.infinity,
287+
height: 200,
288+
fit: BoxFit.cover,
289+
loadingBuilder: (context, child, loadingProgress) {
290+
if (loadingProgress == null) return child;
291+
return Container(
292+
width: double.infinity,
293+
height: 200,
294+
color: colorScheme.surfaceContainerHighest,
295+
child: const Center(
296+
child: CircularProgressIndicator(),
297+
),
298+
);
299+
},
300+
errorBuilder:
301+
(context, error, stackTrace) => Container(
302+
width: double.infinity,
303+
height: 200,
304+
color: colorScheme.surfaceContainerHighest,
305+
child: Icon(
306+
Icons.broken_image_outlined,
307+
color: colorScheme.onSurfaceVariant,
308+
size: AppSpacing.xxl,
309+
),
310+
),
311+
)
312+
: Container(
298313
width: double.infinity,
299314
height: 200,
300315
color: colorScheme.surfaceContainerHighest,
301316
child: Icon(
302-
Icons.broken_image_outlined,
317+
Icons.image_not_supported_outlined,
303318
color: colorScheme.onSurfaceVariant,
304319
size: AppSpacing.xxl,
305320
),
306321
),
307-
)
308-
: Container(
309-
width: double.infinity,
310-
height: 200,
311-
color: colorScheme.surfaceContainerHighest,
312-
child: Icon(
313-
Icons.image_not_supported_outlined,
314-
color: colorScheme.onSurfaceVariant,
315-
size: AppSpacing.xxl,
316-
),
317-
),
318322
),
319323
),
320324
),
@@ -504,42 +508,46 @@ class _HeadlineDetailsPageState extends State<HeadlineDetailsPage> {
504508
child: Builder(
505509
// Use Builder to get a new context that can watch AppBloc
506510
builder: (context) {
507-
final imageStyle = context
508-
.watch<AppBloc>()
509-
.state
510-
.settings
511-
.feedPreferences
512-
.headlineImageStyle;
511+
final imageStyle =
512+
context
513+
.watch<AppBloc>()
514+
.state
515+
.settings
516+
.feedPreferences
517+
.headlineImageStyle;
513518
Widget tile;
514519
switch (imageStyle) {
515520
case HeadlineImageStyle.hidden:
516521
tile = HeadlineTileTextOnly(
517522
headline: similarHeadline,
518-
onHeadlineTap: () => context.pushNamed(
519-
Routes.articleDetailsName,
520-
pathParameters: {'id': similarHeadline.id},
521-
extra: similarHeadline,
522-
),
523+
onHeadlineTap:
524+
() => context.pushNamed(
525+
Routes.articleDetailsName,
526+
pathParameters: {'id': similarHeadline.id},
527+
extra: similarHeadline,
528+
),
523529
);
524530
break;
525531
case HeadlineImageStyle.smallThumbnail:
526532
tile = HeadlineTileImageStart(
527533
headline: similarHeadline,
528-
onHeadlineTap: () => context.pushNamed(
529-
Routes.articleDetailsName,
530-
pathParameters: {'id': similarHeadline.id},
531-
extra: similarHeadline,
532-
),
534+
onHeadlineTap:
535+
() => context.pushNamed(
536+
Routes.articleDetailsName,
537+
pathParameters: {'id': similarHeadline.id},
538+
extra: similarHeadline,
539+
),
533540
);
534541
break;
535542
case HeadlineImageStyle.largeThumbnail:
536543
tile = HeadlineTileImageTop(
537544
headline: similarHeadline,
538-
onHeadlineTap: () => context.pushNamed(
539-
Routes.articleDetailsName,
540-
pathParameters: {'id': similarHeadline.id},
541-
extra: similarHeadline,
542-
),
545+
onHeadlineTap:
546+
() => context.pushNamed(
547+
Routes.articleDetailsName,
548+
pathParameters: {'id': similarHeadline.id},
549+
extra: similarHeadline,
550+
),
543551
);
544552
break;
545553
}

lib/headlines-feed/view/headlines_feed_page.dart

Lines changed: 27 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ import 'package:ht_main/headlines-feed/bloc/headlines_feed_bloc.dart';
1414
import 'package:ht_main/l10n/l10n.dart';
1515
import 'package:ht_main/router/routes.dart';
1616
import 'package:ht_main/shared/shared.dart';
17-
import 'package:ht_shared/ht_shared.dart' show Headline, HeadlineImageStyle; // Added HeadlineImageStyle
17+
import 'package:ht_shared/ht_shared.dart'
18+
show Headline, HeadlineImageStyle; // Added HeadlineImageStyle
1819

1920
/// {@template headlines_feed_view}
2021
/// The core view widget for the headlines feed.
@@ -219,43 +220,47 @@ class _HeadlinesFeedPageState extends State<HeadlinesFeedPage> {
219220
}
220221
// Otherwise, build the headline item
221222
final headline = state.headlines[index];
222-
final imageStyle = context
223-
.watch<AppBloc>()
224-
.state
225-
.settings
226-
.feedPreferences
227-
.headlineImageStyle;
223+
final imageStyle =
224+
context
225+
.watch<AppBloc>()
226+
.state
227+
.settings
228+
.feedPreferences
229+
.headlineImageStyle;
228230

229231
Widget tile;
230232
switch (imageStyle) {
231233
case HeadlineImageStyle.hidden:
232234
tile = HeadlineTileTextOnly(
233235
headline: headline,
234-
onHeadlineTap: () => context.goNamed(
235-
Routes.articleDetailsName,
236-
pathParameters: {'id': headline.id},
237-
extra: headline,
238-
),
236+
onHeadlineTap:
237+
() => context.goNamed(
238+
Routes.articleDetailsName,
239+
pathParameters: {'id': headline.id},
240+
extra: headline,
241+
),
239242
);
240243
break;
241244
case HeadlineImageStyle.smallThumbnail:
242245
tile = HeadlineTileImageStart(
243246
headline: headline,
244-
onHeadlineTap: () => context.goNamed(
245-
Routes.articleDetailsName,
246-
pathParameters: {'id': headline.id},
247-
extra: headline,
248-
),
247+
onHeadlineTap:
248+
() => context.goNamed(
249+
Routes.articleDetailsName,
250+
pathParameters: {'id': headline.id},
251+
extra: headline,
252+
),
249253
);
250254
break;
251255
case HeadlineImageStyle.largeThumbnail:
252256
tile = HeadlineTileImageTop(
253257
headline: headline,
254-
onHeadlineTap: () => context.goNamed(
255-
Routes.articleDetailsName,
256-
pathParameters: {'id': headline.id},
257-
extra: headline,
258-
),
258+
onHeadlineTap:
259+
() => context.goNamed(
260+
Routes.articleDetailsName,
261+
pathParameters: {'id': headline.id},
262+
extra: headline,
263+
),
259264
);
260265
break;
261266
}

0 commit comments

Comments
 (0)