Skip to content

Commit 063e574

Browse files
committed
fix(design-system): accordion variant should apply to individual headers not all
1 parent f28dda1 commit 063e574

File tree

2 files changed

+19
-19
lines changed

2 files changed

+19
-19
lines changed

.changeset/many-bobcats-jam.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@strapi/design-system': patch
3+
---
4+
5+
fix(accordion): variant should apply to header not all accordions

packages/design-system/src/components/Accordion/Accordion.tsx

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,6 @@ interface ContextValue {
2121
* @default "S"
2222
*/
2323
size: Size;
24-
/**
25-
* @default "primary"
26-
*/
27-
variant: Variant;
2824
}
2925

3026
const [AccordionProvider, useAccordion] = createContext<ContextValue>('Accordion');
@@ -33,17 +29,13 @@ type Element = HTMLDivElement;
3329

3430
type Props = Omit<RadixAccordion.AccordionSingleProps, 'type'> & Partial<ContextValue>;
3531

36-
const Root = React.forwardRef<Element, Props>(
37-
({ children, size = 'S', variant = 'primary', ...props }, forwardedRef) => {
38-
return (
39-
<AccordionRoot ref={forwardedRef} $size={size} collapsible {...props} type="single">
40-
<AccordionProvider size={size} variant={variant}>
41-
{children}
42-
</AccordionProvider>
43-
</AccordionRoot>
44-
);
45-
},
46-
);
32+
const Root = React.forwardRef<Element, Props>(({ children, size = 'S', ...props }, forwardedRef) => {
33+
return (
34+
<AccordionRoot ref={forwardedRef} $size={size} collapsible {...props} type="single">
35+
<AccordionProvider size={size}>{children}</AccordionProvider>
36+
</AccordionRoot>
37+
);
38+
});
4739

4840
const AccordionRoot = styled(RadixAccordion.Root)<{ $size: Size }>`
4941
background-color: ${(props) => props.theme.colors.neutral0};
@@ -247,11 +239,14 @@ const ActionWrapper = styled<FlexComponent<'span'>>(Flex).attrs((props) => ({
247239

248240
type HeaderElement = HTMLHeadingElement;
249241

250-
interface HeaderProps extends Omit<RadixAccordion.AccordionHeaderProps, 'asChild'> {}
251-
252-
const Header = React.forwardRef<HeaderElement, HeaderProps>((props, forwardedRef) => {
253-
const { variant } = useAccordion('Trigger');
242+
interface HeaderProps extends Omit<RadixAccordion.AccordionHeaderProps, 'asChild'> {
243+
/**
244+
* @default "primary"
245+
*/
246+
variant: Variant;
247+
}
254248

249+
const Header = React.forwardRef<HeaderElement, HeaderProps>(({ variant = 'primary', ...props }, forwardedRef) => {
255250
return <AccordionHeader $variant={variant} ref={forwardedRef} {...props} />;
256251
});
257252

0 commit comments

Comments
 (0)