Skip to content

Commit a1a4ad0

Browse files
authored
feat(InlineMessage): remove support for sx prop (#6813)
1 parent aba8050 commit a1a4ad0

File tree

2 files changed

+28
-38
lines changed

2 files changed

+28
-38
lines changed

.changeset/shy-flies-marry.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@primer/react': major
3+
---
4+
5+
Remove support for `sx` prop for `InlineMessage`

packages/react/src/InlineMessage/InlineMessage.tsx

Lines changed: 23 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -2,56 +2,41 @@ import {AlertFillIcon, AlertIcon, CheckCircleFillIcon, CheckCircleIcon} from '@p
22
import {clsx} from 'clsx'
33
import type React from 'react'
44
import classes from './InlineMessage.module.css'
5-
import type {SxProp} from '../sx'
6-
import {BoxWithFallback} from '../internal/components/BoxWithFallback'
75
type MessageVariant = 'critical' | 'success' | 'unavailable' | 'warning'
86

9-
export type InlineMessageProps = React.ComponentPropsWithoutRef<'div'> &
10-
SxProp & {
11-
/**
12-
* Specify the size of the InlineMessage
13-
*/
14-
size?: 'small' | 'medium'
7+
export type InlineMessageProps = React.ComponentPropsWithoutRef<'div'> & {
8+
/**
9+
* Specify the size of the InlineMessage
10+
*/
11+
size?: 'small' | 'medium'
1512

16-
/**
17-
* Specify the type of the InlineMessage
18-
*/
19-
variant: MessageVariant
20-
}
21-
22-
const variantToIcon = (variant: MessageVariant): React.ReactNode => {
23-
const icons = {
24-
warning: <AlertIcon className={classes.InlineMessageIcon} />,
25-
critical: <AlertIcon className={classes.InlineMessageIcon} />,
26-
success: <CheckCircleIcon className={classes.InlineMessageIcon} />,
27-
unavailable: <AlertIcon className={classes.InlineMessageIcon} />,
28-
}
13+
/**
14+
* Specify the type of the InlineMessage
15+
*/
16+
variant: MessageVariant
17+
}
2918

30-
return icons[variant]
19+
const icons: Record<MessageVariant, React.ReactNode> = {
20+
warning: <AlertIcon className={classes.InlineMessageIcon} />,
21+
critical: <AlertIcon className={classes.InlineMessageIcon} />,
22+
success: <CheckCircleIcon className={classes.InlineMessageIcon} />,
23+
unavailable: <AlertIcon className={classes.InlineMessageIcon} />,
3124
}
3225

33-
const variantToSmallIcon = (variant: MessageVariant): React.ReactNode => {
34-
const icons = {
35-
warning: <AlertFillIcon className={classes.InlineMessageIcon} size={12} />,
36-
critical: <AlertFillIcon className={classes.InlineMessageIcon} size={12} />,
37-
success: <CheckCircleFillIcon className={classes.InlineMessageIcon} size={12} />,
38-
unavailable: <AlertFillIcon className={classes.InlineMessageIcon} size={12} />,
39-
}
40-
return icons[variant]
26+
const smallIcons: Record<MessageVariant, React.ReactNode> = {
27+
warning: <AlertFillIcon className={classes.InlineMessageIcon} size={12} />,
28+
critical: <AlertFillIcon className={classes.InlineMessageIcon} size={12} />,
29+
success: <CheckCircleFillIcon className={classes.InlineMessageIcon} size={12} />,
30+
unavailable: <AlertFillIcon className={classes.InlineMessageIcon} size={12} />,
4131
}
4232

4333
export function InlineMessage({children, className, size = 'medium', variant, ...rest}: InlineMessageProps) {
44-
const icon = size === 'small' ? variantToSmallIcon(variant) : variantToIcon(variant)
34+
const icon = size === 'small' ? smallIcons[variant] : icons[variant]
4535

4636
return (
47-
<BoxWithFallback
48-
className={clsx(className, classes.InlineMessage)}
49-
{...rest}
50-
data-size={size}
51-
data-variant={variant}
52-
>
37+
<div {...rest} className={clsx(className, classes.InlineMessage)} data-size={size} data-variant={variant}>
5338
{icon}
5439
{children}
55-
</BoxWithFallback>
40+
</div>
5641
)
5742
}

0 commit comments

Comments
 (0)