@@ -4,13 +4,12 @@ import Box from '../Box'
4
4
import Spinner from '../Spinner'
5
5
import type { SxProp } from '../sx'
6
6
import { merge } from '../sx'
7
- import { ItemContext , getVariantStyles } from './shared'
7
+ import { ItemContext } from './shared'
8
8
import { Tooltip , type TooltipProps } from '../TooltipV2'
9
9
import { clsx } from 'clsx'
10
- import { useFeatureFlag } from '../FeatureFlags'
11
10
import classes from './ActionList.module.css'
12
11
import { defaultSxProp } from '../utils/defaultSxProp'
13
- import { actionListCssModulesFlag } from './featureflag '
12
+ import { BoxWithFallback } from '../internal/components/BoxWithFallback '
14
13
15
14
export type VisualProps = SxProp & React . HTMLAttributes < HTMLSpanElement >
16
15
@@ -19,10 +18,7 @@ export const VisualContainer: React.FC<React.PropsWithChildren<VisualProps>> = (
19
18
className,
20
19
...props
21
20
} ) => {
22
- if ( sx !== defaultSxProp ) {
23
- return < Box as = "span" className = { clsx ( className , classes . VisualWrap ) } sx = { sx } { ...props } />
24
- }
25
- return < span className = { clsx ( className , classes . VisualWrap ) } { ...props } />
21
+ return < BoxWithFallback as = "span" className = { clsx ( className , classes . VisualWrap ) } sx = { sx } { ...props } />
26
22
}
27
23
28
24
// remove when primer_react_css_modules_X is shipped
@@ -52,89 +48,21 @@ export const LeadingVisualContainer: React.FC<React.PropsWithChildren<VisualProp
52
48
}
53
49
54
50
export type ActionListLeadingVisualProps = VisualProps
55
- export const LeadingVisual : React . FC < React . PropsWithChildren < VisualProps > > = ( {
56
- sx = defaultSxProp ,
57
- className,
58
- ...props
59
- } ) => {
60
- const { variant, disabled, inactive} = React . useContext ( ItemContext )
61
-
62
- const enabled = useFeatureFlag ( actionListCssModulesFlag )
63
-
64
- if ( enabled ) {
65
- return (
66
- < VisualContainer className = { clsx ( className , classes . LeadingVisual ) } sx = { sx } { ...props } >
67
- { props . children }
68
- </ VisualContainer >
69
- )
70
- }
51
+ export const LeadingVisual : React . FC < React . PropsWithChildren < VisualProps > > = ( { sx, className, ...props } ) => {
71
52
return (
72
- < LeadingVisualContainer
73
- className = { className }
74
- sx = { merge (
75
- {
76
- color : getVariantStyles ( variant , disabled , inactive ) . iconColor ,
77
- svg : { fontSize : 0 } ,
78
- '[data-variant="danger"]:not([aria-disabled]):not([data-inactive]):hover &, [data-variant="danger"]:active &' :
79
- {
80
- color : getVariantStyles ( variant , disabled , inactive ) . hoverColor ,
81
- } ,
82
- } ,
83
- sx as SxProp ,
84
- ) }
85
- { ...props }
86
- >
53
+ < VisualContainer className = { clsx ( className , classes . LeadingVisual ) } sx = { sx } { ...props } >
87
54
{ props . children }
88
- </ LeadingVisualContainer >
55
+ </ VisualContainer >
89
56
)
90
57
}
91
58
92
59
export type ActionListTrailingVisualProps = VisualProps
93
- export const TrailingVisual : React . FC < React . PropsWithChildren < VisualProps > > = ( {
94
- sx = defaultSxProp ,
95
- className,
96
- ...props
97
- } ) => {
98
- const { variant, disabled, inactive, trailingVisualId} = React . useContext ( ItemContext )
99
- const enabled = useFeatureFlag ( actionListCssModulesFlag )
100
- if ( enabled ) {
101
- if ( sx !== defaultSxProp ) {
102
- return (
103
- < VisualContainer className = { clsx ( className , classes . TrailingVisual ) } sx = { sx } id = { trailingVisualId } { ...props } >
104
- { props . children }
105
- </ VisualContainer >
106
- )
107
- }
108
- return (
109
- < VisualContainer className = { clsx ( className , classes . TrailingVisual ) } id = { trailingVisualId } { ...props } >
110
- { props . children }
111
- </ VisualContainer >
112
- )
113
- }
60
+ export const TrailingVisual : React . FC < React . PropsWithChildren < VisualProps > > = ( { sx, className, ...props } ) => {
61
+ const { trailingVisualId} = React . useContext ( ItemContext )
114
62
return (
115
- < Box
116
- id = { trailingVisualId }
117
- as = "span"
118
- className = { className }
119
- sx = { merge (
120
- {
121
- height : '20px' , // match height of text row
122
- flexShrink : 0 ,
123
- color : getVariantStyles ( variant , disabled , inactive ) . annotationColor ,
124
- marginLeft : 2 ,
125
- fontWeight : 'initial' ,
126
- display : 'grid' ,
127
- alignContent : 'center' ,
128
- '[data-variant="danger"]:hover &, [data-variant="danger"]:active &' : {
129
- color : getVariantStyles ( variant , disabled , inactive ) . hoverColor ,
130
- } ,
131
- } ,
132
- sx as SxProp ,
133
- ) }
134
- { ...props }
135
- >
63
+ < VisualContainer sx = { sx } className = { clsx ( className , classes . TrailingVisual ) } id = { trailingVisualId } { ...props } >
136
64
{ props . children }
137
- </ Box >
65
+ </ VisualContainer >
138
66
)
139
67
}
140
68
@@ -170,7 +98,7 @@ export const VisualOrIndicator: React.FC<
170
98
< span className = { classes . InactiveButtonWrap } >
171
99
< Tooltip text = { inactiveText } type = "description" >
172
100
< button type = "button" className = { classes . InactiveButtonReset } aria-labelledby = { labelId } >
173
- < VisualComponent >
101
+ < VisualComponent className = { className } >
174
102
< AlertIcon />
175
103
</ VisualComponent >
176
104
</ button >
0 commit comments