Skip to content

Filter GPP notices from TCF experience options#7274

Open
gilluminate wants to merge 9 commits intomainfrom
gill/ENG-1237/adding-gpp-notices-to-a-tcf-experience-results-in
Open

Filter GPP notices from TCF experience options#7274
gilluminate wants to merge 9 commits intomainfrom
gill/ENG-1237/adding-gpp-notices-to-a-tcf-experience-results-in

Conversation

@gilluminate
Copy link
Contributor

@gilluminate gilluminate commented Jan 29, 2026

Ticket ENG-1237

Description Of Changes

Added validation and UI improvements to prevent GPP notices from being configured in TCF experiences. When GPP notices are detected in a TCF experience, an error alert is displayed. The privacy notice dropdown now filters out GPP notices for TCF experiences and shows a disabled placeholder option to inform users that GPP notices are not supported.

Code Changes

  • Filtered GPP notices from the available options when configuring TCF experiences
  • Added error alert when existing GPP notices are detected in TCF experience configuration
  • Added disabled placeholder option in dropdown to inform users GPP notices are not supported in TCF
  • Enhanced ScrollableList component to support disabled items via isItemDisabled prop
  • Updated dropdown to use variable width (popupMatchSelectWidth={false}) to display longer option names without ellipsis
  • Added search functionality to dropdown with optionFilterProp="label"
CleanShot 2026-02-02 at 17 33 15@2x

Steps to Confirm

  1. Navigate to a TCF experience configuration
  2. Verify that GPP notices are filtered from the privacy notice dropdown
  3. Verify that a disabled "GPP notices not supported in TCF" option appears in the dropdown if any GPP notices exist
  4. If a TCF experience has existing GPP notices configured, verify an error alert is displayed
  5. Verify that non-TCF experiences still show all privacy notices including GPP notices

Pre-Merge Checklist

  • Issue requirements met
  • All CI pipelines succeeded
  • CHANGELOG.md updated
  • UX feedback:
    • All UX related changes have been reviewed by a designer
  • Followup issues:
    • No followup issues
  • Database migrations:
    • No migrations
  • Documentation:
    • No documentation updates required

@vercel
Copy link
Contributor

vercel bot commented Jan 29, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
fides-plus-nightly Ready Ready Preview, Comment Feb 3, 2026 8:08pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
fides-privacy-center Ignored Ignored Feb 3, 2026 8:08pm

Request Review

@gilluminate gilluminate force-pushed the gill/ENG-1237/adding-gpp-notices-to-a-tcf-experience-results-in branch from 8293530 to e27fbd8 Compare February 2, 2026 19:22
@gilluminate gilluminate force-pushed the gill/ENG-1237/adding-gpp-notices-to-a-tcf-experience-results-in branch from 979a1cd to 910402f Compare February 3, 2026 17:29
@gilluminate gilluminate force-pushed the gill/ENG-1237/adding-gpp-notices-to-a-tcf-experience-results-in branch from 910402f to b809448 Compare February 3, 2026 18:02
@gilluminate gilluminate marked this pull request as ready for review February 3, 2026 18:36
@gilluminate gilluminate requested a review from a team as a code owner February 3, 2026 18:36
@gilluminate gilluminate requested review from lucanovera and removed request for a team February 3, 2026 18:36
@greptile-apps
Copy link
Contributor

greptile-apps bot commented Feb 3, 2026

Greptile Overview

Greptile Summary

This PR adds validation to prevent GPP (Global Privacy Platform) notices from being configured in TCF (Transparency and Consent Framework) experiences, improving data integrity for consent management.

Key Changes:

  • GPP notices (gpp_us_national and gpp_us_state frameworks) are now filtered from the privacy notice dropdown when configuring TCF experiences
  • An error alert displays when existing GPP notices are detected in TCF configurations
  • A disabled "GPP notices not supported in TCF" placeholder option appears in the dropdown to inform users
  • Enhanced ScrollableList component with isItemDisabled prop for better disabled item handling
  • Added search functionality (optionFilterProp="label") and variable width popup (popupMatchSelectWidth={false}) to the dropdown for improved UX
  • Comprehensive Cypress tests validate the filtering behavior and error messaging

Issues Found:

  • When switching from another experience type to TCF Overlay, line 329 replaces all existing privacy notices with just the TCF placeholder, causing users to lose their previously selected non-GPP notices

Confidence Score: 4/5

  • Safe to merge with one logical issue that causes data loss when switching to TCF experience type
  • The filtering logic and UI enhancements work correctly, but switching to TCF_OVERLAY discards existing valid notices instead of preserving non-GPP ones
  • PrivacyExperienceForm.tsx line 329 needs attention for the component change handler logic

Important Files Changed

Filename Overview
clients/admin-ui/src/features/privacy-experience/PrivacyExperienceForm.tsx Filters GPP notices from TCF experiences, adds error alert for existing GPP notices, and implements disabled placeholder option
clients/admin-ui/src/features/common/ScrollableList.tsx Enhanced component with isItemDisabled prop support and improved dropdown UX with search and variable width
clients/admin-ui/cypress/e2e/privacy-experience/experience-editor.cy.ts Reorganized TCF tests, added tests for GPP notice filtering and error alert display

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

3 files reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

@greptile-apps
Copy link
Contributor

greptile-apps bot commented Feb 3, 2026

Additional Comments (1)

clients/admin-ui/src/features/privacy-experience/PrivacyExperienceForm.tsx
When switching to TCF_OVERLAY, existing privacy notices are being replaced entirely with just the placeholder. Users lose their previously selected notices.

Consider preserving existing non-GPP notices:

      updates.privacy_notice_ids = [
        TCF_PLACEHOLDER_ID,
        ...(values.privacy_notice_ids?.filter(
          (id) => {
            const notice = allPrivacyNotices.find((n) => n.id === id);
            return notice && !isGppNotice(notice);
          }
        ) ?? []),
      ];

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants