|
1 | 1 | import React, {useEffect, useState, type ComponentPropsWithoutRef, type ReactElement} from 'react'
|
2 |
| -import styled from 'styled-components' |
3 | 2 | import type {SxProp} from '../sx'
|
4 |
| -import sx from '../sx' |
5 |
| -import {toggleStyledComponent} from '../internal/utils/toggleStyledComponent' |
6 |
| -import {useFeatureFlag} from '../FeatureFlags' |
7 | 3 | import {clsx} from 'clsx'
|
8 | 4 | import classes from './Details.module.css'
|
9 | 5 | import {useMergedRefs} from '../internal/hooks/useMergedRefs'
|
10 |
| - |
11 |
| -const CSS_MODULES_FEATURE_FLAG = 'primer_react_css_modules_ga' |
12 |
| - |
13 |
| -const StyledDetails = toggleStyledComponent( |
14 |
| - CSS_MODULES_FEATURE_FLAG, |
15 |
| - 'details', |
16 |
| - styled.details<SxProp>` |
17 |
| - & > summary { |
18 |
| - list-style: none; |
19 |
| - } |
20 |
| - & > summary::-webkit-details-marker { |
21 |
| - display: none; |
22 |
| - } |
23 |
| -
|
24 |
| - ${sx}; |
25 |
| - `, |
26 |
| -) |
| 6 | +import {defaultSxProp} from '../utils/defaultSxProp' |
| 7 | +import Box from '../Box' |
27 | 8 |
|
28 | 9 | const Root = React.forwardRef<HTMLDetailsElement, DetailsProps>(
|
29 |
| - ({className, children, ...rest}, forwardRef): ReactElement => { |
30 |
| - const enabled = useFeatureFlag(CSS_MODULES_FEATURE_FLAG) |
| 10 | + ({className, children, sx: sxProp = defaultSxProp, ...rest}, forwardRef): ReactElement => { |
31 | 11 | const detailsRef = React.useRef<HTMLDetailsElement>(null)
|
32 | 12 | const ref = useMergedRefs(forwardRef, detailsRef)
|
33 | 13 | const [hasSummary, setHasSummary] = useState(false)
|
@@ -60,12 +40,22 @@ const Root = React.forwardRef<HTMLDetailsElement, DetailsProps>(
|
60 | 40 | }
|
61 | 41 | }, [])
|
62 | 42 |
|
| 43 | + if (sxProp !== defaultSxProp) { |
| 44 | + return ( |
| 45 | + <Box as={'details'} className={clsx(className, classes.Details)} {...rest} sx={sxProp} ref={ref}> |
| 46 | + {/* Include default summary if summary is not provided */} |
| 47 | + {!hasSummary && <Details.Summary data-default-summary>{'See Details'}</Details.Summary>} |
| 48 | + {children} |
| 49 | + </Box> |
| 50 | + ) |
| 51 | + } |
| 52 | + |
63 | 53 | return (
|
64 |
| - <StyledDetails className={clsx(className, {[classes.Details]: enabled})} {...rest} ref={ref}> |
| 54 | + <details className={clsx(className, classes.Details)} {...rest} ref={ref}> |
65 | 55 | {/* Include default summary if summary is not provided */}
|
66 | 56 | {!hasSummary && <Details.Summary data-default-summary>{'See Details'}</Details.Summary>}
|
67 | 57 | {children}
|
68 |
| - </StyledDetails> |
| 58 | + </details> |
69 | 59 | )
|
70 | 60 | },
|
71 | 61 | )
|
|
0 commit comments