Skip to content

Commit c4552da

Browse files
committed
Rewrite composeClasses
1 parent 070fefb commit c4552da

3 files changed

Lines changed: 11 additions & 4 deletions

File tree

src/injectStyled.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ const injectStyled = (styled: StyledType) => (InnerComponent: ReactClass<any>) =
1111
const classes = [...classNames]
1212
.reduce((acc, name) => ({
1313
...acc,
14-
[name]: composeClasses(staticSheet.classes[name], dynamicSheet.classes[name]),
14+
[name]: composeClasses([staticSheet.classes[name], dynamicSheet.classes[name]]),
1515
}), {})
1616

1717
return (props: Object) => createElement(InnerComponent, {classes, ...props})

src/styled.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,11 +69,11 @@ const styled = ({tagName, elementStyle, mountSheets}: StyledArgs) => {
6969
const {children, className, ...attrs} = this.props
7070

7171
const props = filterProps(attrs)
72-
const tagClass = composeClasses(
72+
const tagClass = composeClasses([
7373
this.staticSheet.classes[staticTagName],
7474
this.dynamicSheet.classes[this.dynamicTagName],
7575
className
76-
)
76+
])
7777

7878
return createElement(tagName, {...props, className: tagClass}, children)
7979
}

src/utils/composeClasses.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,8 @@
1-
export default (...args: any) => args.filter(Boolean).join(' ')
1+
export default (classes: Array<?string | boolean>) => {
2+
const filtered = []
3+
for (let len = classes.length, index = 0; index < len; index++) {
4+
if (classes[index]) filtered.push(classes[index])
5+
}
6+
7+
return filtered.join(' ')
8+
}

0 commit comments

Comments
 (0)