Skip to content

Commit 6c9c36a

Browse files
committed
Rewrite composeClasses
1 parent 8f9005d commit 6c9c36a

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
@@ -64,11 +64,11 @@ const styled = ({tagName, elementStyle, mountSheets, addRule}: StyledArgs) => {
6464
const {children, className, ...attrs} = this.props
6565

6666
const props = filterProps(attrs)
67-
const tagClass = composeClasses(
67+
const tagClass = composeClasses([
6868
this.staticSheet.classes[staticTagName],
6969
this.dynamicSheet.classes[this.dynamicTagName],
7070
className
71-
)
71+
])
7272

7373
return createElement(tagName, {...props, className: tagClass}, children)
7474
}

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)