Skip to content

feat(segment_membership): Surface identity counts in segments UI#7467

Open
khvn26 wants to merge 1 commit intofeat/segment-membership-countsfrom
feat/segment-membership-counts-ui
Open

feat(segment_membership): Surface identity counts in segments UI#7467
khvn26 wants to merge 1 commit intofeat/segment-membership-countsfrom
feat/segment-membership-counts-ui

Conversation

@khvn26
Copy link
Copy Markdown
Member

@khvn26 khvn26 commented May 9, 2026

Thanks for submitting a PR! Please check the boxes below:

  • I have read the Contributing Guide.
  • I have added information to docs/ if required so people know about the feature.
  • I have filled in the "Changes" section below.
  • I have filled in the "How did you test this code" section below.

Changes

Contributes to #7464 (stacked on top — review after backend PR).

Surfaces the new Segment.memberships field on three places in the existing UI:

  • Project segments list — total identities across envs + relative sync time on each row.
  • Identities tab on the segment edit page — same total, in compact form, next to the tab label.
  • Inside the Identities tab — per-env count beside each option in the environment select; selecting an env reveals the full last_synced_at timestamp underneath.

Two small enabling changes outside the segments folder:

  • Shared Option in project-components.js now honours selectProps.formatOptionLabel when callers pass one (falls back to the existing label/description layout).
  • Drops !important on the global .chip align-self so the badge can opt into vertical centering inline.

How did you test this code?

Manually drove the segments list, segment edit page, and the Identities tab in a local dev server pointed at staging, with a fetch interceptor injecting synthetic memberships arrays into the segments responses (since the backend gate is off). Verified the total badge on each row, the compact badge next to the Identities tab label vertically centered with the label text, per-env chips inside the select options, and the full timestamp display on selection — including the Last synced: — placeholder before any selection.

Added one Playwright spec (e2e/tests/segment-membership-test.pw.ts) using page.route to stub memberships end-to-end against a real seeded segment, asserting the total badge in the list, the badge on the tab, per-env badges in the select, and the full-timestamp line on selection.

Adds two reusable badges sourced from the Segment.memberships field:
- SegmentMembershipTotalBadge: aggregates counts across environments and
  shows the most recent sync time as a relative interval. Rendered on
  each segment row in the project segments list (with the "identities"
  noun) and next to the Identities tab label on the segment edit page
  (compact, count + sync only).
- SegmentMembershipEnvBadge: per-env count, rendered as the option label
  inside the Identities tab's environment select.

Selecting an environment in the Identities tab displays the full
last_synced_at timestamp underneath the select; before any selection
the row stays in place as a placeholder.

The shared Option component in project-components now honours
selectProps.formatOptionLabel when callers provide one, falling back to
the existing label/description layout. Drops the !important on the
chip's align-self so badges can opt into vertical centering inline.

beep boop
@khvn26 khvn26 requested a review from a team as a code owner May 9, 2026 02:07
@khvn26 khvn26 requested review from kyle-ssg and removed request for a team May 9, 2026 02:07
Copy link
Copy Markdown

@claude claude Bot left a comment

Choose a reason for hiding this comment

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

Claude Code Review

This repository is configured for manual code reviews. Comment @claude review to trigger a review and subscribe this PR to future pushes, or @claude review once for a one-time review.

Tip: disable this comment in your organization's Code Review settings.

@vercel
Copy link
Copy Markdown

vercel Bot commented May 9, 2026

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

Project Deployment Actions Updated (UTC)
flagsmith-frontend-preview Ready Ready Preview, Comment May 9, 2026 2:07am
flagsmith-frontend-staging Ready Ready Preview, Comment May 9, 2026 2:07am
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
docs Ignored Ignored May 9, 2026 2:07am

Request Review

@github-actions github-actions Bot added front-end Issue related to the React Front End Dashboard feature New feature or request labels May 9, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 9, 2026

Docker builds report

Image Build Status Security report
ghcr.io/flagsmith/flagsmith-api-test:pr-7467 Finished ✅ Skipped
ghcr.io/flagsmith/flagsmith-e2e:pr-7467 Finished ✅ Skipped
ghcr.io/flagsmith/flagsmith-api:pr-7467 Finished ✅ Results
ghcr.io/flagsmith/flagsmith-private-cloud:pr-7467 Finished ✅ Results
ghcr.io/flagsmith/flagsmith:pr-7467 Finished ✅ Results
ghcr.io/flagsmith/flagsmith-frontend:pr-7467 Finished ✅ Results

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 9, 2026

Playwright Test Results (oss - depot-ubuntu-latest-16)

failed  3 failed

Details

stats  3 tests across 2 suites
duration  41 seconds
commit  a757fd1
info  📦 Artifacts: View test results and HTML report
🔄 Run: #16624 (attempt 1)

Failed tests

firefox › tests/segment-membership-test.pw.ts › Segment membership badges render in list, tab, and env select @oss
firefox › tests/segment-test.pw.ts › Segment test 1 - Create, update, and manage segments with multivariate flags @oss
firefox › tests/segment-test.pw.ts › Segment test 4 - Create ANY rule type segment and verify match changes when rule is updated @oss

### Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

failed  3 failed
passed  1 passed

Details

stats  4 tests across 3 suites
duration  51.3 seconds
commit  a757fd1
info  📦 Artifacts: View test results and HTML report
🔄 Run: #16624 (attempt 1)

Failed tests

firefox › tests/segment-membership-test.pw.ts › Segment membership badges render in list, tab, and env select @oss
firefox › tests/segment-test.pw.ts › Segment test 1 - Create, update, and manage segments with multivariate flags @oss
firefox › tests/segment-test.pw.ts › Segment test 4 - Create ANY rule type segment and verify match changes when rule is updated @oss

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 9, 2026

Visual Regression

16 screenshots compared. See report for details.
View full report

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

Labels

feature New feature or request front-end Issue related to the React Front End Dashboard

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant