@@ -2,23 +2,42 @@ import background from "src/components/templates/mixins/background"
22import borderMixIn from "src/components/templates/mixins/border"
33import shadow from "src/components/templates/mixins/shadow"
44import { getColor } from "src/theme"
5-
6- const clearEmptyLines = str => str . replace ( / ^ (? = \n ) $ | ^ \s * | \s * $ | \n \n + / gm, "" )
5+ import alignItems from "src/components/templates/mixins/alignItems"
76
87const fontColor = ( { theme, color } ) => {
98 if ( ! color ) return ""
9+
1010 return `color: ${ getColor ( color ) ( { theme } ) } ;`
1111}
1212
13- export const callAllFunctionsAndMergeResults = ( ...fns ) => {
13+ const clearEmptyLines = str => str . replace ( / ^ (? = \n ) $ | ^ \s * | \s * $ | \n \n + / gm, "" )
14+
15+ const transforms = {
16+ boxShadow : shadow ,
17+ border : borderMixIn ,
18+ background : background ,
19+ color : fontColor ,
20+ alignItems : alignItems ,
21+ }
22+
23+ export const calculateStyles = ( { theme, ...styles } ) => {
1424 let result = ""
15- return function mergedFn ( arg ) {
16- fns . forEach ( fn => {
17- const functionResult = fn && typeof fn === "function" ? fn ( arg ) : ""
18- result = result + functionResult
19- } )
20- return result
25+
26+ for ( const key in styles ) {
27+ if ( transforms [ key ] !== undefined ) {
28+ const transformFuction = transforms [ key ]
29+ const transformFuctionResult =
30+ transformFuction && typeof transformFuction === "function"
31+ ? transformFuction ( { theme, ...styles } )
32+ : ""
33+ result = result + transformFuctionResult
34+ continue
35+ }
36+ const value = styles [ key ]
37+ result = result + `${ key } :${ value } ;`
2138 }
39+
40+ return result
2241}
2342
2443export const pseudoSelectors = {
@@ -56,12 +75,7 @@ export default ({ theme, ...props }) => {
5675 if ( prop in pseudoSelectors ) {
5776 const pseudoProp = prop
5877 const pseudoStyles = props [ pseudoProp ]
59- const styles = callAllFunctionsAndMergeResults (
60- shadow ,
61- borderMixIn ,
62- background ,
63- fontColor
64- ) ( { theme, ...pseudoStyles } )
78+ const styles = calculateStyles ( { theme, ...pseudoStyles } )
6579
6680 pseudo =
6781 pseudo +
0 commit comments