From 972437075b641c8f4344cfee762657fad7067dd5 Mon Sep 17 00:00:00 2001 From: lttb Date: Tue, 9 May 2017 14:34:31 +0300 Subject: [PATCH] Breaking change: keep just only curried interface --- README.md | 13 ++++--------- src/createStyled.js | 9 ++++----- src/tests/App.jsx | 7 +++---- 3 files changed, 11 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index f5d1e67..469b971 100644 --- a/README.md +++ b/README.md @@ -25,17 +25,12 @@ Install peer dependencies `react` and `react-dom` in your project. ```js import styled from 'styled-jss' -const Button = styled('button', { - fontSize: 12, - color: (props) => props.theme.textColor -}) - -// Curried interface. const Button = styled('button')({ fontSize: 12, color: (props) => props.theme.textColor }) +// You can also use curried interface this way. const div = styled('div') const Container = div({ @@ -43,7 +38,7 @@ const Container = div({ }) // Composition. -const PrimaryButton = styled(Button, { +const PrimaryButton = styled(Button)({ color: 'red' }) ``` @@ -71,14 +66,14 @@ const styled = Styled({ } }) -const NormalButton = styled('button', { +const NormalButton = styled('button')({ composes: '$baseButton', border: [1, 'solid', 'grey'], color: 'black' }) // Composition - same way. -const PrimaryButton = styled(NormalButton, { +const PrimaryButton = styled(NormalButton)({ color: 'red' }) diff --git a/src/createStyled.js b/src/createStyled.js index 05f1f31..d8b96b8 100644 --- a/src/createStyled.js +++ b/src/createStyled.js @@ -20,8 +20,6 @@ const getStyledArgs = ( return {tagName, style} } -const curry1 = (fn: Function) => (a: *, b?: *) => (b !== undefined ? fn(a, b) : b2 => fn(a, b2)) - const createStyled = (jss: Function) => (baseStyles: BaseStylesType = {}): StyledType => { let staticSheet let dynamicSheet @@ -41,15 +39,16 @@ const createStyled = (jss: Function) => (baseStyles: BaseStylesType = {}): Style return {staticSheet, dynamicSheet} } - return Object.assign(curry1(( - tagNameOrStyledElement: TagNameOrStyledElementType, + return Object.assign(( + tagNameOrStyledElement: TagNameOrStyledElementType + ) => ( ownStyle: ComponentStyleType ): StyledElementType => { const {tagName, style} = getStyledArgs(tagNameOrStyledElement) const elementStyle = {...style, ...ownStyle} return styled({tagName, baseStyles, elementStyle, mountSheets}) - }), {mountSheets, styles: baseStyles}) + }, {mountSheets, styles: baseStyles}) } export default createStyled diff --git a/src/tests/App.jsx b/src/tests/App.jsx index 1447091..e267631 100644 --- a/src/tests/App.jsx +++ b/src/tests/App.jsx @@ -2,7 +2,7 @@ import React from 'react' import type {StyledType} from '../types' export default (styled: StyledType) => { - const App = styled('div', { + const App = styled('div')({ margin: 50, }) @@ -22,16 +22,15 @@ export default (styled: StyledType) => { color: 'yellow', }) - const Title = styled('h1', { + const Title = styled('h1')({ color: 'red', }) // function value - const Button = styled('button', { + const Button = styled('button')({ margin: ({margin = 0}) => margin, }) - return () => (