Skip to content

Commit 4dbe5e2

Browse files
committed
feat(feed): show empty state when no headlines
- Show informative message - When list is empty - After filters applied
1 parent f6d8d69 commit 4dbe5e2

File tree

3 files changed

+32
-0
lines changed

3 files changed

+32
-0
lines changed

lib/headlines-feed/view/headlines_feed_page.dart

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import 'package:ht_main/headlines-feed/widgets/headline_item_widget.dart';
1111
import 'package:ht_main/l10n/l10n.dart';
1212
import 'package:ht_main/router/routes.dart';
1313
import 'package:ht_main/shared/constants/constants.dart';
14+
import 'package:ht_main/shared/shared.dart';
1415
import 'package:ht_main/shared/widgets/failure_state_widget.dart';
1516
import 'package:ht_main/shared/widgets/loading_state_widget.dart';
1617
// Import Source
@@ -166,6 +167,21 @@ class _HeadlinesFeedPageState extends State<HeadlinesFeedPage> {
166167
return const SizedBox.shrink();
167168

168169
case HeadlinesFeedLoaded():
170+
if (state.headlines.isEmpty) {
171+
// If the list is empty, show an informative message using the
172+
// shared InitialStateWidget. This is especially relevant after
173+
// filters are applied and yield no results, or if the initial
174+
// unfiltered feed is empty.
175+
return InitialStateWidget(
176+
icon:
177+
Icons
178+
.search_off_outlined, // Visually indicates no results
179+
headline:
180+
l10n.headlinesFeedEmptyFilteredHeadline, // Placeholder l10n
181+
subheadline:
182+
l10n.headlinesFeedEmptyFilteredSubheadline, // Placeholder l10n
183+
);
184+
}
169185
// Display the list of headlines with pull-to-refresh
170186
return RefreshIndicator(
171187
onRefresh: () async {

lib/l10n/arb/app_ar.arb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -549,5 +549,13 @@
549549
"emailCodeValidationLengthError": "يجب أن يتكون الرمز من 6 أرقام.",
550550
"@emailCodeValidationLengthError": {
551551
"description": "Validation error when the email verification code is not 6 digits."
552+
},
553+
"headlinesFeedEmptyFilteredHeadline": "لا توجد عناوين تطابق فلاترك",
554+
"@headlinesFeedEmptyFilteredHeadline": {
555+
"description": "Headline text shown when headline filters result in an empty list"
556+
},
557+
"headlinesFeedEmptyFilteredSubheadline": "حاول تعديل معايير الفلترة أو مسحها لرؤية جميع العناوين.",
558+
"@headlinesFeedEmptyFilteredSubheadline": {
559+
"description": "Subheadline text shown when headline filters result in an empty list"
552560
}
553561
}

lib/l10n/arb/app_en.arb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -549,5 +549,13 @@
549549
"emailCodeValidationLengthError": "The code must be 6 digits.",
550550
"@emailCodeValidationLengthError": {
551551
"description": "Validation error when the email verification code is not 6 digits."
552+
},
553+
"headlinesFeedEmptyFilteredHeadline": "No Headlines Match Your Filters",
554+
"@headlinesFeedEmptyFilteredHeadline": {
555+
"description": "Headline text shown when headline filters result in an empty list"
556+
},
557+
"headlinesFeedEmptyFilteredSubheadline": "Try adjusting your filter criteria or clearing them to see all headlines.",
558+
"@headlinesFeedEmptyFilteredSubheadline": {
559+
"description": "Subheadline text shown when headline filters result in an empty list"
552560
}
553561
}

0 commit comments

Comments
 (0)