@@ -5,15 +5,15 @@ import 'package:flutter/foundation.dart' show kIsWeb; // Import kIsWeb
5
5
import 'package:flutter/material.dart' ;
6
6
import 'package:flutter_bloc/flutter_bloc.dart' ;
7
7
import 'package:go_router/go_router.dart' ; // Import GoRouter
8
- import 'package:ht_main/account/bloc/account_bloc.dart' ; // Import AccountBloc
9
- import 'package:ht_main/headline-details/bloc/headline_details_bloc.dart' ; // Import BLoC
10
- import 'package:ht_main/headline-details/bloc/similar_headlines_bloc.dart' ; // Import SimilarHeadlinesBloc
11
- import 'package:ht_main/headlines-feed/widgets/headline_item_widget.dart' ; // Import HeadlineItemWidget
8
+ import 'package:ht_main/account/bloc/account_bloc.dart' ;
9
+ import 'package:ht_main/app/bloc/app_bloc.dart' ; // Added AppBloc
10
+ import 'package:ht_main/headline-details/bloc/headline_details_bloc.dart' ;
11
+ import 'package:ht_main/headline-details/bloc/similar_headlines_bloc.dart' ;
12
+ // HeadlineItemWidget import removed
12
13
import 'package:ht_main/l10n/l10n.dart' ;
13
- import 'package:ht_main/router/routes.dart' ; // Import Routes
14
+ import 'package:ht_main/router/routes.dart' ;
14
15
import 'package:ht_main/shared/shared.dart' ;
15
- import 'package:ht_shared/ht_shared.dart'
16
- show Headline; // Import Headline model
16
+ import 'package:ht_shared/ht_shared.dart' show Headline, HeadlineImageStyle; // Added HeadlineImageStyle
17
17
import 'package:intl/intl.dart' ;
18
18
import 'package:share_plus/share_plus.dart' ; // Import share_plus
19
19
import 'package:url_launcher/url_launcher_string.dart' ;
@@ -490,17 +490,50 @@ class _HeadlineDetailsPageState extends State<HeadlineDetailsPage> {
490
490
horizontal: AppSpacing .paddingMedium,
491
491
vertical: AppSpacing .sm,
492
492
),
493
- child: HeadlineItemWidget (
494
- headline: similarHeadline,
495
- // Use the onTap callback for navigation
496
- onTap: (tappedHeadline) {
497
- context.pushNamed (
498
- Routes .articleDetailsName,
499
- pathParameters: {'id' : tappedHeadline.id},
500
- extra: tappedHeadline,
501
- );
493
+ child: Builder (
494
+ // Use Builder to get a new context that can watch AppBloc
495
+ builder: (context) {
496
+ final imageStyle = context
497
+ .watch <AppBloc >()
498
+ .state
499
+ .settings
500
+ .feedPreferences
501
+ .headlineImageStyle;
502
+ Widget tile;
503
+ switch (imageStyle) {
504
+ case HeadlineImageStyle .hidden:
505
+ tile = HeadlineTileTextOnly (
506
+ headline: similarHeadline,
507
+ onHeadlineTap: () => context.pushNamed (
508
+ Routes .articleDetailsName,
509
+ pathParameters: {'id' : similarHeadline.id},
510
+ extra: similarHeadline,
511
+ ),
512
+ );
513
+ break ;
514
+ case HeadlineImageStyle .smallThumbnail:
515
+ tile = HeadlineTileImageStart (
516
+ headline: similarHeadline,
517
+ onHeadlineTap: () => context.pushNamed (
518
+ Routes .articleDetailsName,
519
+ pathParameters: {'id' : similarHeadline.id},
520
+ extra: similarHeadline,
521
+ ),
522
+ );
523
+ break ;
524
+ case HeadlineImageStyle .largeThumbnail:
525
+ tile = HeadlineTileImageTop (
526
+ headline: similarHeadline,
527
+ onHeadlineTap: () => context.pushNamed (
528
+ Routes .articleDetailsName,
529
+ pathParameters: {'id' : similarHeadline.id},
530
+ extra: similarHeadline,
531
+ ),
532
+ );
533
+ break ;
534
+ }
535
+ return tile;
502
536
},
503
- // targetRouteName: Routes.articleDetailsName, // No longer needed here
504
537
),
505
538
);
506
539
}, childCount: loadedState.similarHeadlines.length),
0 commit comments