@@ -6,12 +6,15 @@ import 'package:flutter_bloc/flutter_bloc.dart';
6
6
import 'package:go_router/go_router.dart' ;
7
7
// Import Category
8
8
// Import Country
9
+ import 'package:flutter_bloc/flutter_bloc.dart' ;
10
+ import 'package:go_router/go_router.dart' ;
11
+ import 'package:ht_main/app/bloc/app_bloc.dart' ; // Added to access settings
9
12
import 'package:ht_main/headlines-feed/bloc/headlines_feed_bloc.dart' ;
10
- import 'package:ht_main/headlines-feed/widgets/headline_item_widget.dart' ;
13
+ // HeadlineItemWidget import removed
11
14
import 'package:ht_main/l10n/l10n.dart' ;
12
15
import 'package:ht_main/router/routes.dart' ;
13
16
import 'package:ht_main/shared/shared.dart' ;
14
- // Import Source
17
+ import 'package:ht_shared/ht_shared.dart' show Headline, HeadlineImageStyle; // Added HeadlineImageStyle
15
18
16
19
/// {@template headlines_feed_view}
17
20
/// The core view widget for the headlines feed.
@@ -216,10 +219,47 @@ class _HeadlinesFeedPageState extends State<HeadlinesFeedPage> {
216
219
}
217
220
// Otherwise, build the headline item
218
221
final headline = state.headlines[index];
219
- return HeadlineItemWidget (
220
- headline: headline,
221
- targetRouteName: Routes .articleDetailsName,
222
- );
222
+ final imageStyle = context
223
+ .watch <AppBloc >()
224
+ .state
225
+ .settings
226
+ .feedPreferences
227
+ .headlineImageStyle;
228
+
229
+ Widget tile;
230
+ switch (imageStyle) {
231
+ case HeadlineImageStyle .hidden:
232
+ tile = HeadlineTileTextOnly (
233
+ headline: headline,
234
+ onHeadlineTap: () => context.goNamed (
235
+ Routes .articleDetailsName,
236
+ pathParameters: {'id' : headline.id},
237
+ extra: headline,
238
+ ),
239
+ );
240
+ break ;
241
+ case HeadlineImageStyle .smallThumbnail:
242
+ tile = HeadlineTileImageStart (
243
+ headline: headline,
244
+ onHeadlineTap: () => context.goNamed (
245
+ Routes .articleDetailsName,
246
+ pathParameters: {'id' : headline.id},
247
+ extra: headline,
248
+ ),
249
+ );
250
+ break ;
251
+ case HeadlineImageStyle .largeThumbnail:
252
+ tile = HeadlineTileImageTop (
253
+ headline: headline,
254
+ onHeadlineTap: () => context.goNamed (
255
+ Routes .articleDetailsName,
256
+ pathParameters: {'id' : headline.id},
257
+ extra: headline,
258
+ ),
259
+ );
260
+ break ;
261
+ }
262
+ return tile;
223
263
},
224
264
),
225
265
);
0 commit comments