@@ -2,56 +2,41 @@ import {AlertFillIcon, AlertIcon, CheckCircleFillIcon, CheckCircleIcon} from '@p
22import { clsx } from 'clsx'
33import type React from 'react'
44import classes from './InlineMessage.module.css'
5- import type { SxProp } from '../sx'
6- import { BoxWithFallback } from '../internal/components/BoxWithFallback'
75type 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
4333export 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