Skip to content
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions lib/app_configuration/view/tabs/feed_configuration_tab.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'package:core/core.dart';
import 'package:flutter/material.dart';
import 'package:flutter_news_app_web_dashboard_full_source_code/app_configuration/widgets/feed_decorator_form.dart';
import 'package:flutter_news_app_web_dashboard_full_source_code/app_configuration/widgets/saved_headlines_filters_limit_form.dart';
import 'package:flutter_news_app_web_dashboard_full_source_code/app_configuration/widgets/saved_feed_filters_limit_form.dart';
import 'package:flutter_news_app_web_dashboard_full_source_code/app_configuration/widgets/user_preference_limits_form.dart';
import 'package:flutter_news_app_web_dashboard_full_source_code/l10n/l10n.dart';
import 'package:flutter_news_app_web_dashboard_full_source_code/shared/extensions/feed_decorator_type_l10n.dart';
Expand Down Expand Up @@ -93,7 +93,7 @@ class _FeedConfigurationTabState extends State<FeedConfigurationTab> {
const tileIndex = 1;
return ExpansionTile(
key: ValueKey('savedHeadlinesFilterLimitsTile_$expandedIndex'),
title: Text(l10n.savedHeadlinesFilterLimitsTitle),
title: Text(l10n.savedFeedFilterLimitsTitle),
childrenPadding: const EdgeInsetsDirectional.only(
start: AppSpacing.lg,
top: AppSpacing.md,
Expand All @@ -106,15 +106,15 @@ class _FeedConfigurationTabState extends State<FeedConfigurationTab> {
initiallyExpanded: expandedIndex == tileIndex,
children: [
Text(
l10n.savedHeadlinesFilterLimitsDescription,
l10n.savedFeedFilterLimitsDescription,
style: Theme.of(context).textTheme.bodySmall?.copyWith(
color: Theme.of(
context,
).colorScheme.onSurface.withOpacity(0.7),
),
),
const SizedBox(height: AppSpacing.lg),
SavedHeadlinesFiltersLimitForm(
SavedFeedFiltersLimitForm(
remoteConfig: widget.remoteConfig,
onConfigChanged: widget.onConfigChanged,
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,16 @@ import 'package:flutter_news_app_web_dashboard_full_source_code/l10n/l10n.dart';
import 'package:flutter_news_app_web_dashboard_full_source_code/shared/extensions/app_user_role_l10n.dart';
import 'package:ui_kit/ui_kit.dart';

/// {@template saved_headlines_filters_limit_form}
/// A form for configuring saved headlines filter limits within the
/// {@template saved_feed_filters_limit_form}
/// A form for configuring saved feed filter limits within the
/// [RemoteConfig].
///
/// This form provides fields to set the maximum number of saved filters
/// for guest, authenticated, and premium users.
/// {@endtemplate}
class SavedHeadlinesFiltersLimitForm extends StatefulWidget {
/// {@macro saved_headlines_filters_limit_form}
const SavedHeadlinesFiltersLimitForm({
class SavedFeedFiltersLimitForm extends StatefulWidget {
/// {@macro saved_feed_filters_limit_form}
const SavedFeedFiltersLimitForm({
required this.remoteConfig,
required this.onConfigChanged,
super.key,
Expand All @@ -27,12 +27,11 @@ class SavedHeadlinesFiltersLimitForm extends StatefulWidget {
final ValueChanged<RemoteConfig> onConfigChanged;

@override
State<SavedHeadlinesFiltersLimitForm> createState() =>
_SavedHeadlinesFiltersLimitFormState();
State<SavedFeedFiltersLimitForm> createState() =>
_SavedFeedFiltersLimitFormState();
}

class _SavedHeadlinesFiltersLimitFormState
extends State<SavedHeadlinesFiltersLimitForm>
class _SavedFeedFiltersLimitFormState extends State<SavedFeedFiltersLimitForm>
with SingleTickerProviderStateMixin {
late TabController _tabController;
late final Map<AppUserRole, TextEditingController> _controllers;
Expand All @@ -48,7 +47,7 @@ class _SavedHeadlinesFiltersLimitFormState
}

@override
void didUpdateWidget(covariant SavedHeadlinesFiltersLimitForm oldWidget) {
void didUpdateWidget(covariant SavedFeedFiltersLimitForm oldWidget) {
super.didUpdateWidget(oldWidget);
if (widget.remoteConfig.userPreferenceConfig !=
oldWidget.remoteConfig.userPreferenceConfig) {
Expand Down Expand Up @@ -125,8 +124,8 @@ class _SavedHeadlinesFiltersLimitFormState
children: AppUserRole.values.map((role) {
final config = widget.remoteConfig.userPreferenceConfig;
return AppConfigIntField(
label: l10n.savedHeadlinesLimitLabel,
description: l10n.savedHeadlinesLimitDescription,
label: l10n.savedFeedFiltersLimitLabel,
description: l10n.savedFeedFiltersLimitLabel,
value: _getSavedFiltersLimit(config, role),
onChanged: (value) {
widget.onConfigChanged(
Expand Down
26 changes: 13 additions & 13 deletions lib/l10n/app_localizations.dart
Original file line number Diff line number Diff line change
Expand Up @@ -290,13 +290,13 @@ abstract class AppLocalizations {
/// **'General'**
String get generalTab;

/// Title for the User Content & Feed Limits section
/// Title for the User Content Limits section
///
/// In en, this message translates to:
/// **'User Content & Feed Limits'**
/// **'User Content Limits'**
String get userContentLimitsTitle;

/// Description for the User Content & Feed Limits section
/// Description for the User Content Limits section
///
/// In en, this message translates to:
/// **'Set limits on followed items and saved headlines for each user tier.'**
Expand Down Expand Up @@ -1568,17 +1568,17 @@ abstract class AppLocalizations {
/// **'Maximum number of countries, news sources, or categories this user role can follow (each type has its own limit).'**
String get followedItemsLimitDescription;

/// Label for Saved Headlines Limit
/// Label for Saved filters Limit
///
/// In en, this message translates to:
/// **'Saved Headlines Limit'**
String get savedHeadlinesLimitLabel;
/// **'Saved Filters Limit'**
String get savedFeedFiltersLimitLabel;

/// Description for Saved Headlines Limit
///
/// In en, this message translates to:
/// **'Maximum number of headlines this user role can save.'**
String get savedHeadlinesLimitDescription;
/// **'Maximum number of feed filters this user role can save.'**
String get savedFeedFiltersLimitDescription;

/// Label for Ad Frequency
///
Expand All @@ -1595,14 +1595,14 @@ abstract class AppLocalizations {
/// Description for the Saved Headlines Filter Limits section
///
/// In en, this message translates to:
/// **'Set limits on the number of saved headlines filters for each user tier.'**
String get savedHeadlinesFilterLimitsDescription;
/// **'Set limits on the number of saved feed filters for each user tier.'**
String get savedFeedFilterLimitsDescription;

/// Title for the Saved Headlines Filter Limits section
/// Title for the Saved Feed Filter Limits section
///
/// In en, this message translates to:
/// **'Saved Headlines Filter Limits'**
String get savedHeadlinesFilterLimitsTitle;
/// **'Saved Feed Filter Limits'**
String get savedFeedFilterLimitsTitle;

/// Label for Ad Placement Interval
///
Expand Down
14 changes: 7 additions & 7 deletions lib/l10n/app_localizations_ar.dart
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ class AppLocalizationsAr extends AppLocalizations {
String get generalTab => 'عام';

@override
String get userContentLimitsTitle => 'حدود المحتوى والموجز للمستخدم';
String get userContentLimitsTitle => 'حدود المحتوى للمستخدم';

@override
String get userContentLimitsDescription =>
Expand Down Expand Up @@ -826,11 +826,11 @@ class AppLocalizationsAr extends AppLocalizations {
'الحد الأقصى لعدد البلدان أو مصادر الأخبار أو المواضيع التي يمكن لهذا الدور المستخدم متابعتها (لكل نوع حد خاص به).';

@override
String get savedHeadlinesLimitLabel => 'حد العناوين المحفوظة';
String get savedFeedFiltersLimitLabel => 'حد المرشحات المحفوظة';

@override
String get savedHeadlinesLimitDescription =>
'الحد الأقصى لعدد العناوين الرئيسية التي يمكن لهذا الدور المستخدم حفظها.';
String get savedFeedFiltersLimitDescription =>
'الحد الأقصى لعدد مرشحات موجز الأخبار التي يمكن لهذا الدور المستخدم حفظها.';

@override
String get adFrequencyLabel => 'تكرار الإعلان';
Expand All @@ -840,11 +840,11 @@ class AppLocalizationsAr extends AppLocalizations {
'عدد مرات ظهور الإعلان لهذا الدور المستخدم (على سبيل المثال، قيمة 5 تعني أنه يمكن وضع إعلان بعد كل 5 عناصر إخبارية).';

@override
String get savedHeadlinesFilterLimitsDescription =>
'الحد الأقصى لعدد مرشحات العناوين المحفوظة التي يمكن لهذا الدور إنشاؤها.';
String get savedFeedFilterLimitsDescription =>
'الحد الأقصى لعدد مرشحات موجز الأخبار المحفوظة التي يمكن لهذا الدور إنشاؤها.';

@override
String get savedHeadlinesFilterLimitsTitle => 'حدود مرشحات العناوين المحفوظة';
String get savedFeedFilterLimitsTitle => 'حد مرشحات موجز الأخبار المحفوظة';

@override
String get adPlacementIntervalLabel => 'فترة وضع الإعلان';
Expand Down
14 changes: 7 additions & 7 deletions lib/l10n/app_localizations_en.dart
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ class AppLocalizationsEn extends AppLocalizations {
String get generalTab => 'General';

@override
String get userContentLimitsTitle => 'User Content & Feed Limits';
String get userContentLimitsTitle => 'User Content Limits';

@override
String get userContentLimitsDescription =>
Expand Down Expand Up @@ -824,11 +824,11 @@ class AppLocalizationsEn extends AppLocalizations {
'Maximum number of countries, news sources, or categories this user role can follow (each type has its own limit).';

@override
String get savedHeadlinesLimitLabel => 'Saved Headlines Limit';
String get savedFeedFiltersLimitLabel => 'Saved Filters Limit';

@override
String get savedHeadlinesLimitDescription =>
'Maximum number of headlines this user role can save.';
String get savedFeedFiltersLimitDescription =>
'Maximum number of feed filters this user role can save.';

@override
String get adFrequencyLabel => 'Ad Frequency';
Expand All @@ -838,11 +838,11 @@ class AppLocalizationsEn extends AppLocalizations {
'How often an ad can appear for this user role (e.g., a value of 5 means an ad could be placed after every 5 news items).';

@override
String get savedHeadlinesFilterLimitsDescription =>
'Set limits on the number of saved headlines filters for each user tier.';
String get savedFeedFilterLimitsDescription =>
'Set limits on the number of saved feed filters for each user tier.';

@override
String get savedHeadlinesFilterLimitsTitle => 'Saved Headlines Filter Limits';
String get savedFeedFilterLimitsTitle => 'Saved Feed Filter Limits';

@override
String get adPlacementIntervalLabel => 'Ad Placement Interval';
Expand Down
26 changes: 13 additions & 13 deletions lib/l10n/arb/app_ar.arb
Original file line number Diff line number Diff line change
Expand Up @@ -143,13 +143,13 @@
"@generalTab": {
"description": "عنوان تبويب الإعدادات العامة"
},
"userContentLimitsTitle": "حدود المحتوى والموجز للمستخدم",
"userContentLimitsTitle": "حدود المحتوى للمستخدم",
"@userContentLimitsTitle": {
"description": "عنوان قسم حدود المحتوى والموجز للمستخدم"
"description": "عنوان قسم حدود المحتوى للمستخدم"
},
"userContentLimitsDescription": "تعيين حدود للعناصر المتابعة والعناوين المحفوظة لكل فئة من فئات المستخدمين.",
"@userContentLimitsDescription": {
"description": "وصف قسم حدود المحتوى والموجز للمستخدم"
"description": "وصف قسم حدود المحتوى للمستخدم"
},
"feedActionsTitle": "إجراءات الموجز",
"@feedActionsTitle": {
Expand Down Expand Up @@ -1022,12 +1022,12 @@
"@followedItemsLimitDescription": {
"description": "وصف حد العناصر المتابعة"
},
"savedHeadlinesLimitLabel": "حد العناوين المحفوظة",
"@savedHeadlinesLimitLabel": {
"description": "تسمية حد العناوين المحفوظة"
"savedFeedFiltersLimitLabel": "حد المرشحات المحفوظة",
"@savedFeedFiltersLimitLabel": {
"description": "تسمية حد مرشحات موجز الأخبار المحفوظة"
},
"savedHeadlinesLimitDescription": "الحد الأقصى لعدد العناوين الرئيسية التي يمكن لهذا الدور المستخدم حفظها.",
"@savedHeadlinesLimitDescription": {
"savedFeedFiltersLimitDescription": "الحد الأقصى لعدد مرشحات موجز الأخبار التي يمكن لهذا الدور المستخدم حفظها.",
"@savedFeedFiltersLimitDescription": {
"description": "وصف حد العناوين المحفوظة"
},
"adFrequencyLabel": "تكرار الإعلان",
Expand All @@ -1038,12 +1038,12 @@
"@adFrequencyDescription": {
"description": "وصف تكرار الإعلان"
},
"savedHeadlinesFilterLimitsTitle": "حدود مرشحات العناوين المحفوظة",
"@savedHeadlinesFilterLimitsTitle": {
"description": "وصف لحد المرشحات المحفوظة"
"savedFeedFilterLimitsTitle": "حد مرشحات موجز الأخبار المحفوظة",
"@savedFeedFilterLimitsTitle": {
"description": "وصف لحد مرشحات موجز الأخبار المحفوظة"
},
"savedHeadlinesFilterLimitsDescription": "الحد الأقصى لعدد مرشحات العناوين المحفوظة التي يمكن لهذا الدور إنشاؤها.",
"@savedHeadlinesFilterLimitsDescription": {
"savedFeedFilterLimitsDescription": "الحد الأقصى لعدد مرشحات موجز الأخبار المحفوظة التي يمكن لهذا الدور إنشاؤها.",
"@savedFeedFilterLimitsDescription": {
"description": "وصف لحد المرشحات المحفوظة"
},
"adPlacementIntervalLabel": "فترة وضع الإعلان",
Expand Down
26 changes: 13 additions & 13 deletions lib/l10n/arb/app_en.arb
Original file line number Diff line number Diff line change
Expand Up @@ -143,13 +143,13 @@
"@generalTab": {
"description": "Tab title for General settings"
},
"userContentLimitsTitle": "User Content & Feed Limits",
"userContentLimitsTitle": "User Content Limits",
"@userContentLimitsTitle": {
"description": "Title for the User Content & Feed Limits section"
"description": "Title for the User Content Limits section"
},
"userContentLimitsDescription": "Set limits on followed items and saved headlines for each user tier.",
"@userContentLimitsDescription": {
"description": "Description for the User Content & Feed Limits section"
"description": "Description for the User Content Limits section"
},
"feedActionsTitle": "Feed Actions",
"@feedActionsTitle": {
Expand Down Expand Up @@ -1022,12 +1022,12 @@
"@followedItemsLimitDescription": {
"description": "Description for Followed Items Limit"
},
"savedHeadlinesLimitLabel": "Saved Headlines Limit",
"@savedHeadlinesLimitLabel": {
"description": "Label for Saved Headlines Limit"
"savedFeedFiltersLimitLabel": "Saved Filters Limit",
"@savedFeedFiltersLimitLabel": {
"description": "Label for Saved filters Limit"
},
"savedHeadlinesLimitDescription": "Maximum number of headlines this user role can save.",
"@savedHeadlinesLimitDescription": {
"savedFeedFiltersLimitDescription": "Maximum number of feed filters this user role can save.",
"@savedFeedFiltersLimitDescription": {
"description": "Description for Saved Headlines Limit"
},
"adFrequencyLabel": "Ad Frequency",
Expand All @@ -1038,13 +1038,13 @@
"@adFrequencyDescription": {
"description": "Description for Ad Frequency"
},
"savedHeadlinesFilterLimitsDescription": "Set limits on the number of saved headlines filters for each user tier.",
"@savedHeadlinesFilterLimitsDescription": {
"savedFeedFilterLimitsDescription": "Set limits on the number of saved feed filters for each user tier.",
"@savedFeedFilterLimitsDescription": {
"description": "Description for the Saved Headlines Filter Limits section"
},
"savedHeadlinesFilterLimitsTitle": "Saved Headlines Filter Limits",
"@savedHeadlinesFilterLimitsTitle": {
"description": "Title for the Saved Headlines Filter Limits section"
"savedFeedFilterLimitsTitle": "Saved Feed Filter Limits",
"@savedFeedFilterLimitsTitle": {
"description": "Title for the Saved Feed Filter Limits section"
},
"adPlacementIntervalLabel": "Ad Placement Interval",
"@adPlacementIntervalLabel": {
Expand Down
Loading