-
Notifications
You must be signed in to change notification settings - Fork 0
Feat/build user generated content config and moderation suite #134
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feat/build user generated content config and moderation suite #134
Conversation
Adds all necessary English and Arabic localization keys for the new "Community & Engagement" section in the App Configuration page.
This includes titles, descriptions, and labels for user engagement, content reporting, and the app feedback funnel, ensuring the UI is fully localized and admin-centric.
Introduces a new extension `EngagementModeL10n` to provide localized string representations for the `EngagementMode` enum values. This centralizes localization logic for the enum, making it reusable and consistent across the UI.
Introduces the `AppReviewSettingsForm`, a self-contained widget for managing the `AppReviewConfig`. It provides UI controls for enabling the feedback system, setting the positive interaction threshold, and configuring follow-up actions, guided by descriptive text that clarifies the two-layer feedback funnel logic.
Introduces the `ReportingSettingsForm`, a widget for managing the `ReportingConfig`. It includes a master toggle for the reporting system and individual switches for enabling/disabling reporting on headlines, sources, and comments, providing granular control.
Introduces `CommunityConfigForm`, a container widget that orchestrates the community settings UI. It composes the `EngagementSettingsForm`, `ReportingSettingsForm`, and `AppReviewSettingsForm` into a series of nested, descriptive `ExpansionTile`s, creating a clear and hierarchical user interface for administrators.
Integrates the newly created `CommunityConfigForm` into the `FeaturesConfigurationTab`. A new top-level `ExpansionTile` labeled "Community & Engagement" is added to the main list, which houses the form.
This change maintains the existing single-expansion UX pattern by leveraging the shared `_expandedTileIndex` ValueNotifier.
Introduces the `EngagementSettingsForm` for managing the `EngagementConfig`. This widget provides a master toggle for the engagement system and a `SegmentedButton` to switch between 'Reactions Only' and 'Reactions & Comments' modes, abstracting the engagement logic into a dedicated UI component.
- Updated core package reference from 3779a8b to a960fe8 in pubspec.yaml - Updated corresponding reference in pubspec.lock
- Replace static fixture data with language-specific data for headlines, topics, and sources - Modify DataInMemory initialization to use getHeadlinesFixturesData, getTopicsFixturesData, and getSourcesFixturesData with 'en' language code
- Add ExpansionTile for internal prompt logic settings - Add ExpansionTile for follow-up actions settings - Move positive interaction threshold and initial prompt cooldown fields inside the new tiles - Add switches for requesting store review and written feedback in the follow-up actions tile
…ctions - Add Arabic and English entries for "internalPromptLogicTitle" and "followUpActionsTitle" - Include descriptions for new entries to facilitate translation and understanding of context
…ility - Update subtitle text style in FeaturesConfigurationTab and CommunityConfigForm - Apply onSurface color with 0.7 opacity for better contrast and readability - Extract subtitle style to a variable for reuse and consistency
- Wrap app review settings in a Padding widget - Display app review settings only if appReviewConfig.enabled is true - Adjust layout structure to improve readability and maintainability
- Add padding around form elements - Improve spacing between sections - Update ExpansionTile layout for better readability - Adjust switch alignment for consistency - Update related localization strings to reflect new terminology
Summary of ChangesHello @fulleni, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request introduces a robust set of administrative tools for managing user-generated content and community interactions within the application. It provides a centralized interface for configuring user engagement features like reactions and comments, setting up content reporting mechanisms, and fine-tuning the app review funnel. These additions empower administrators with greater control over the user experience and content moderation, ensuring a healthy and interactive community environment. Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request introduces a comprehensive configuration suite for user-generated content and community engagement features. The changes are well-structured, adding new forms for engagement, reporting, and app review settings. My review focuses on improving code maintainability by reducing duplication in onChanged handlers and enhancing the robustness of the UI state management in features_configuration_tab.dart. I've provided specific suggestions to refactor verbose copyWith chains and correct the usage of ValueKey to prevent potential UI state issues.
Added `expandedCrossAxisAlignment: CrossAxisAlignment.start` to the `CommunityConfigForm` widget to align the app review settings to the left side. This improves the layout and readability of the settings form.
- Add a SwitchListTile to enable/disable community features - Wrap existing settings forms in a conditional rendering block - Improve user flow by allowing access to settings only when community features are enabled
- Add SwitchListTile to enable/disable source reporting - Update reporting configuration when switch state changes - Implement source reporting
Status
READY
Description
This pull request introduces a robust set of administrative tools for managing user-generated content and community interactions within the application. It provides a centralized interface for configuring user engagement features like reactions and comments, setting up content reporting mechanisms, and fine-tuning the app review funnel. These additions empower administrators with greater control over the user experience and content moderation, ensuring a healthy and interactive community environment.
Type of Change