Skip to content

Commit f350bdb

Browse files
committed
refactor: pass style fillers as lists
1 parent 2c26aae commit f350bdb

1 file changed

Lines changed: 18 additions & 26 deletions

File tree

src/NotificationList/index.tsx

Lines changed: 18 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -42,33 +42,17 @@ export interface NotificationListProps {
4242

4343
const noticeSlotKeys = ['wrapper', 'root', 'icon', 'section', 'close', 'progress'] as const;
4444

45-
function fillClassNames(
46-
classNames?: NotificationClassNames,
47-
configClassNames?: NotificationClassNames,
48-
extraClassNames?: NotificationClassNames,
49-
): NotificationClassNames {
45+
function fillClassNames(classNamesList: NotificationClassNames[]): NotificationClassNames {
5046
return noticeSlotKeys.reduce<NotificationClassNames>((mergedClassNames, key) => {
51-
mergedClassNames[key] = clsx(
52-
classNames?.[key],
53-
configClassNames?.[key],
54-
extraClassNames?.[key],
55-
);
47+
mergedClassNames[key] = clsx(...classNamesList.map((classNames) => classNames[key]));
5648

5749
return mergedClassNames;
5850
}, {});
5951
}
6052

61-
function fillStyles(
62-
styles?: NotificationStyles,
63-
configStyles?: NotificationStyles,
64-
extraStyles?: NotificationStyles,
65-
): NotificationStyles {
53+
function fillStyles(stylesList: NotificationStyles[]): NotificationStyles {
6654
return noticeSlotKeys.reduce<NotificationStyles>((mergedStyles, key) => {
67-
mergedStyles[key] = {
68-
...styles?.[key],
69-
...configStyles?.[key],
70-
...extraStyles?.[key],
71-
};
55+
mergedStyles[key] = Object.assign({}, ...stylesList.map((styles) => styles[key]));
7256

7357
return mergedStyles;
7458
}, {});
@@ -135,12 +119,20 @@ const NotificationListItem: React.FC<NotificationListItemProps> = (props) => {
135119
stackInThreshold={stackInThreshold}
136120
className={clsx(contextClassNames?.notice, config.className)}
137121
style={config.style}
138-
classNames={fillClassNames(classNames, config.classNames, {
139-
root: motionClassName,
140-
})}
141-
styles={fillStyles(styles, config.styles, {
142-
root: motionStyle,
143-
})}
122+
classNames={fillClassNames([
123+
classNames || {},
124+
config.classNames || {},
125+
{
126+
root: motionClassName,
127+
},
128+
])}
129+
styles={fillStyles([
130+
styles || {},
131+
config.styles || {},
132+
{
133+
root: motionStyle,
134+
},
135+
])}
144136
components={{
145137
...components,
146138
...config.components,

0 commit comments

Comments
 (0)