redux-devtools/packages/devui/src/utils/createStyledComponent.js
2019-01-10 20:51:14 +02:00

20 lines
556 B
JavaScript

import styled from 'styled-components';
import getDefaultTheme from '../themes/default';
const getStyle = (styles, type) =>
typeof styles === 'object' ? styles[type] || styles.default : styles;
export default (styles, component) =>
styled(component || 'div')`
${props =>
props.theme.type
? getStyle(styles, props.theme.type)
: // used outside of container (theme provider)
getStyle(styles, 'default')({
...props,
theme: getDefaultTheme(props.theme)
})}
`;
// TODO: memoize it?