Skip to content

Commit 874b820

Browse files
committed
refactor(admin-ui): simplify accordion props splitting logic
- Change default accordion background from "light" to "base" - Inline splitAccordionProps function into AccordionItemBase - Restructure props destructuring for better readability - Maintain same functionality with cleaner implementation The props splitting logic is now contained within a useMemo hook directly in the component, removing the need for a separate utility function and making the code flow more straightforward.
1 parent e54e956 commit 874b820

File tree

2 files changed

+30
-27
lines changed

2 files changed

+30
-27
lines changed

packages/admin-ui/src/Accordion/Accordion.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ const accordionVariants = cva("wby-group wby-w-full", {
1919
},
2020
defaultVariants: {
2121
variant: "container",
22-
background: "light"
22+
background: "base"
2323
}
2424
});
2525

packages/admin-ui/src/Accordion/components/AccordionItem.tsx

Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -23,34 +23,37 @@ const ACCORDION_ITEM_CLASSES = [
2323
"data-[disabled]:wby-pointer-events-none data-[disabled]:wby-opacity-50"
2424
] as const;
2525

26-
const splitAccordionProps = (props: AccordionItemProps) => {
27-
const {
28-
// AccordionRoot props
29-
className,
30-
defaultOpen,
31-
disabled,
32-
onOpenChange,
33-
open,
34-
// AccordionContent props
35-
children,
36-
icon,
37-
handle,
38-
// AccordionTrigger props
39-
...triggerProps
40-
} = props;
26+
const AccordionItemBase = (props: AccordionItemProps) => {
27+
const { itemProps, triggerProps, contentProps } = React.useMemo(() => {
28+
const {
29+
// Item props.
30+
className,
31+
defaultOpen,
32+
disabled,
33+
onOpenChange,
34+
open,
4135

42-
return {
43-
itemProps: { className, defaultOpen, disabled, onOpenChange, open },
44-
contentProps: { children, withIcon: !!icon, withHandle: !!handle },
45-
triggerProps
46-
};
47-
};
36+
// Content props.
37+
children,
4838

49-
const AccordionItemBase = (props: AccordionItemProps) => {
50-
const { itemProps, triggerProps, contentProps } = React.useMemo(
51-
() => splitAccordionProps(props),
52-
[props]
53-
);
39+
// Trigger props.
40+
...triggerProps
41+
} = props;
42+
43+
return {
44+
itemProps: {
45+
className,
46+
defaultOpen,
47+
disabled,
48+
onOpenChange,
49+
open
50+
},
51+
triggerProps: {
52+
...triggerProps
53+
},
54+
contentProps: { children, withIcon: !!props.icon, withHandle: !!props.handle }
55+
};
56+
}, [props]);
5457

5558
return (
5659
<AccordionRoot {...itemProps} className={cn(ACCORDION_ITEM_CLASSES, itemProps.className)}>

0 commit comments

Comments
 (0)