From 3f563278d77b996edf15ac1e2d3f1a75ccfcc997 Mon Sep 17 00:00:00 2001 From: Kate Higa <16447748+khiga8@users.noreply.github.com> Date: Tue, 8 Jul 2025 15:04:14 -0400 Subject: [PATCH 1/4] Clean up the feature flag --- .../src/FeatureFlags/DefaultFeatureFlags.ts | 1 - .../SegmentedControl.test.tsx | 37 ++++------- .../SegmentedControlIconButton.tsx | 62 ++++++------------- 3 files changed, 31 insertions(+), 69 deletions(-) diff --git a/packages/react/src/FeatureFlags/DefaultFeatureFlags.ts b/packages/react/src/FeatureFlags/DefaultFeatureFlags.ts index 6a6ee596c57..0fe1a78ef99 100644 --- a/packages/react/src/FeatureFlags/DefaultFeatureFlags.ts +++ b/packages/react/src/FeatureFlags/DefaultFeatureFlags.ts @@ -5,7 +5,6 @@ export const DefaultFeatureFlags = FeatureFlagScope.create({ primer_react_action_list_item_as_button: false, primer_react_select_panel_with_modern_action_list: false, primer_react_overlay_overflow: false, - primer_react_segmented_control_tooltip: false, primer_react_select_panel_fullscreen_on_narrow: false, primer_react_select_panel_order_selected_at_top: false, }) diff --git a/packages/react/src/SegmentedControl/SegmentedControl.test.tsx b/packages/react/src/SegmentedControl/SegmentedControl.test.tsx index d5630fe41b3..859a2fb577d 100644 --- a/packages/react/src/SegmentedControl/SegmentedControl.test.tsx +++ b/packages/react/src/SegmentedControl/SegmentedControl.test.tsx @@ -8,7 +8,6 @@ import theme from '../theme' import {BaseStyles, ThemeProvider} from '..' import {act} from 'react-test-renderer' import {viewportRanges} from '../hooks/useResponsiveValue' -import {FeatureFlags} from '../FeatureFlags' const segmentData = [ { @@ -182,19 +181,13 @@ describe('SegmentedControl', () => { } }) - it('renders icon button with tooltip as label when feature flag is enabled', () => { + it('renders icon button with tooltip as label', () => { const {getByRole, getByText} = render( - - - {segmentData.map(({label, icon}) => ( - - ))} - - , + + {segmentData.map(({label, icon}) => ( + + ))} + ) for (const datum of segmentData) { @@ -205,19 +198,13 @@ describe('SegmentedControl', () => { } }) - it('renders icon button with tooltip description when feature flag is enabled', () => { + it('renders icon button with tooltip description', () => { const {getByRole, getByText} = render( - - - {segmentData.map(({label, icon, description}) => ( - - ))} - - , + + {segmentData.map(({label, icon, description}) => ( + + ))} + ) for (const datum of segmentData) { diff --git a/packages/react/src/SegmentedControl/SegmentedControlIconButton.tsx b/packages/react/src/SegmentedControl/SegmentedControlIconButton.tsx index 399f67be575..483b943e820 100644 --- a/packages/react/src/SegmentedControl/SegmentedControlIconButton.tsx +++ b/packages/react/src/SegmentedControl/SegmentedControlIconButton.tsx @@ -3,7 +3,6 @@ import type React from 'react' import type {IconProps} from '@primer/octicons-react' import type {SxProp} from '../sx' import {isElement} from 'react-is' -import {useFeatureFlag} from '../FeatureFlags' import type {TooltipDirection} from '../TooltipV2' import classes from './SegmentedControl.module.css' import {clsx} from 'clsx' @@ -35,56 +34,33 @@ export const SegmentedControlIconButton: React.FC { - const tooltipFlagEnabled = useFeatureFlag('primer_react_segmented_control_tooltip') - if (tooltipFlagEnabled) { - return ( - - - - - {isElement(Icon) ? Icon : } - - - - - ) - } else { - // This can be removed when primer_react_segmented_control_tooltip feature flag is GA-ed. - return ( - + - {isElement(Icon) ? Icon : } + + {isElement(Icon) ? Icon : } + - - ) - } + + + ) } export default SegmentedControlIconButton From 599b56f16900b312d1db97b4a394c6395c568e92 Mon Sep 17 00:00:00 2001 From: Kate Higa <16447748+khiga8@users.noreply.github.com> Date: Tue, 8 Jul 2025 15:24:00 -0400 Subject: [PATCH 2/4] Create strong-mangos-rest.md --- .changeset/strong-mangos-rest.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/strong-mangos-rest.md diff --git a/.changeset/strong-mangos-rest.md b/.changeset/strong-mangos-rest.md new file mode 100644 index 00000000000..fd1a71a67bc --- /dev/null +++ b/.changeset/strong-mangos-rest.md @@ -0,0 +1,5 @@ +--- +"@primer/react": minor +--- + +Remove the feature flag for `primer_react_segmented_control_tooltip` and GA tootip by default behavior. From a96b168f9538bffd70f78809771976df3898089f Mon Sep 17 00:00:00 2001 From: Kate Higa <16447748+khiga8@users.noreply.github.com> Date: Fri, 18 Jul 2025 10:42:00 -0400 Subject: [PATCH 3/4] fix lint issues --- packages/react/src/SegmentedControl/SegmentedControl.test.tsx | 4 ++-- .../react/src/SegmentedControl/SegmentedControlIconButton.tsx | 4 +--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/react/src/SegmentedControl/SegmentedControl.test.tsx b/packages/react/src/SegmentedControl/SegmentedControl.test.tsx index 6bda9a91343..06ab43e041c 100644 --- a/packages/react/src/SegmentedControl/SegmentedControl.test.tsx +++ b/packages/react/src/SegmentedControl/SegmentedControl.test.tsx @@ -149,7 +149,7 @@ describe('SegmentedControl', () => { {segmentData.map(({label, icon}) => ( ))} - + , ) for (const datum of segmentData) { @@ -166,7 +166,7 @@ describe('SegmentedControl', () => { {segmentData.map(({label, icon, description}) => ( ))} - + , ) for (const datum of segmentData) { diff --git a/packages/react/src/SegmentedControl/SegmentedControlIconButton.tsx b/packages/react/src/SegmentedControl/SegmentedControlIconButton.tsx index 483b943e820..5dcd7a8f326 100644 --- a/packages/react/src/SegmentedControl/SegmentedControlIconButton.tsx +++ b/packages/react/src/SegmentedControl/SegmentedControlIconButton.tsx @@ -54,9 +54,7 @@ export const SegmentedControlIconButton: React.FC - - {isElement(Icon) ? Icon : } - + {isElement(Icon) ? Icon : } From df6357928d57d6ff6b91fa2d02ce5ed6c8307ffc Mon Sep 17 00:00:00 2001 From: Kate Higa <16447748+khiga8@users.noreply.github.com> Date: Fri, 18 Jul 2025 11:16:33 -0400 Subject: [PATCH 4/4] Fix test --- .../SegmentedControl/SegmentedControl.test.tsx | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/packages/react/src/SegmentedControl/SegmentedControl.test.tsx b/packages/react/src/SegmentedControl/SegmentedControl.test.tsx index 06ab43e041c..9a7b2aac5c9 100644 --- a/packages/react/src/SegmentedControl/SegmentedControl.test.tsx +++ b/packages/react/src/SegmentedControl/SegmentedControl.test.tsx @@ -178,21 +178,6 @@ describe('SegmentedControl', () => { } }) - it('renders icon button with aria-label and no tooltip', () => { - const {getByRole} = render( - - {segmentData.map(({label, icon}) => ( - - ))} - , - ) - - for (const datum of segmentData) { - const labelledButton = getByRole('button', {name: datum.label}) - expect(labelledButton).toHaveAttribute('aria-label', datum.label) - } - }) - it('calls onChange with index of clicked segment button', async () => { const user = userEvent.setup() const handleChange = vi.fn()