Skip to content

Commit 687343c

Browse files
authored
Remove CSS modules feature flag from the InlineMessage component (#5804)
1 parent f31969a commit 687343c

File tree

2 files changed

+39
-67
lines changed

2 files changed

+39
-67
lines changed

.changeset/calm-tigers-complain.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@primer/react": minor
3+
---
4+
5+
Remove CSS modules feature flag from the InlineMessage component
Lines changed: 34 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11
import {AlertFillIcon, AlertIcon, CheckCircleFillIcon, CheckCircleIcon} from '@primer/octicons-react'
22
import {clsx} from 'clsx'
33
import React from 'react'
4-
import styled from 'styled-components'
5-
import {get} from '../constants'
6-
import {toggleStyledComponent} from '../internal/utils/toggleStyledComponent'
7-
import {useFeatureFlag} from '../FeatureFlags'
84
import classes from './InlineMessage.module.css'
95
import type {SxProp} from '../sx'
6+
import {defaultSxProp} from '../utils/defaultSxProp'
7+
import Box from '../Box'
108
type MessageVariant = 'critical' | 'success' | 'unavailable' | 'warning'
119

12-
const CSS_MODULES_FEATURE_FLAG = 'primer_react_css_modules_ga'
13-
1410
export type InlineMessageProps = React.ComponentPropsWithoutRef<'div'> &
1511
SxProp & {
1612
/**
@@ -24,62 +20,18 @@ export type InlineMessageProps = React.ComponentPropsWithoutRef<'div'> &
2420
variant: MessageVariant
2521
}
2622

27-
const StyledMessage = toggleStyledComponent(
28-
CSS_MODULES_FEATURE_FLAG,
29-
'div',
30-
styled.div`
31-
display: grid;
32-
column-gap: 0.5rem;
33-
grid-template-columns: auto 1fr;
34-
align-items: start;
35-
color: var(--inline-message-fgColor, ${get('colors.fg.muted')});
36-
line-height: var(--inline-message-lineHeight);
37-
font-size: var(--inline-message-fontSize, ${get('fontSizes.1')});
38-
39-
&[data-size='small'] {
40-
--inline-message-fontSize: var(--text-body-size-small, ${get('fontSizes.0')});
41-
--inline-message-lineHeight: var(--text-body-lineHeight-small, 1.6666);
42-
}
43-
44-
&[data-size='medium'] {
45-
--inline-message-fontSize: var(--text-body-size-medium, ${get('fontSizes.1')});
46-
--inline-message-lineHeight: var(--text-body-lineHeight-medium, 1.4285);
47-
}
48-
49-
&[data-variant='warning'] {
50-
--inline-message-fgColor: ${get('colors.attention.fg')};
51-
}
52-
53-
&[data-variant='critical'] {
54-
--inline-message-fgColor: ${get('colors.danger.fg')};
55-
}
56-
57-
&[data-variant='success'] {
58-
--inline-message-fgColor: ${get('colors.success.fg')};
59-
}
60-
61-
&[data-variant='unavailable'] {
62-
--inline-message-fgColor: ${get('colors.fg.muted')};
63-
}
64-
65-
& .InlineMessageIcon {
66-
min-height: calc(var(--inline-message-lineHeight) * var(--inline-message-fontSize));
67-
}
68-
`,
69-
)
70-
71-
const variantToIcon = (enabled: boolean, variant: MessageVariant): React.ReactNode => {
23+
const variantToIcon = (variant: MessageVariant): React.ReactNode => {
7224
const icons = {
73-
warning: <AlertIcon className={enabled ? classes.InlineMessageIcon : 'InlineMessageIcon'} />,
74-
critical: <AlertIcon className={enabled ? classes.InlineMessageIcon : 'InlineMessageIcon'} />,
75-
success: <CheckCircleIcon className={enabled ? classes.InlineMessageIcon : 'InlineMessageIcon'} />,
76-
unavailable: <AlertIcon className={enabled ? classes.InlineMessageIcon : 'InlineMessageIcon'} />,
25+
warning: <AlertIcon className={classes.InlineMessageIcon} />,
26+
critical: <AlertIcon className={classes.InlineMessageIcon} />,
27+
success: <CheckCircleIcon className={classes.InlineMessageIcon} />,
28+
unavailable: <AlertIcon className={classes.InlineMessageIcon} />,
7729
}
7830

7931
return icons[variant]
8032
}
8133

82-
const variantToSmallIcon = (enabled: boolean, variant: MessageVariant): React.ReactNode => {
34+
const variantToSmallIcon = (variant: MessageVariant): React.ReactNode => {
8335
const icons = {
8436
warning: <AlertFillIcon className={classes.InlineMessageIcon} size={12} />,
8537
critical: <AlertFillIcon className={classes.InlineMessageIcon} size={12} />,
@@ -89,19 +41,34 @@ const variantToSmallIcon = (enabled: boolean, variant: MessageVariant): React.Re
8941
return icons[variant]
9042
}
9143

92-
export function InlineMessage({children, className, size = 'medium', variant, ...rest}: InlineMessageProps) {
93-
const enabled = useFeatureFlag(CSS_MODULES_FEATURE_FLAG)
94-
95-
const icon = size === 'small' ? variantToSmallIcon(enabled, variant) : variantToIcon(enabled, variant)
44+
export function InlineMessage({
45+
children,
46+
className,
47+
size = 'medium',
48+
variant,
49+
sx: sxProp = defaultSxProp,
50+
...rest
51+
}: InlineMessageProps) {
52+
const icon = size === 'small' ? variantToSmallIcon(variant) : variantToIcon(variant)
53+
54+
if (sxProp !== defaultSxProp) {
55+
return (
56+
<Box
57+
sx={sxProp}
58+
className={clsx(className, classes.InlineMessage)}
59+
{...rest}
60+
data-size={size}
61+
data-variant={variant}
62+
>
63+
{icon}
64+
{children}
65+
</Box>
66+
)
67+
}
9668
return (
97-
<StyledMessage
98-
className={clsx(className, enabled && classes.InlineMessage)}
99-
{...rest}
100-
data-size={size}
101-
data-variant={variant}
102-
>
69+
<div className={clsx(className, classes.InlineMessage)} {...rest} data-size={size} data-variant={variant}>
10370
{icon}
10471
{children}
105-
</StyledMessage>
72+
</div>
10673
)
10774
}

0 commit comments

Comments
 (0)