|
1 | 1 | import {create as createJss} from 'jss' |
2 | 2 | import preset from 'jss-preset-default' |
3 | 3 |
|
4 | | -import styled from './styled' |
5 | | -import type { |
6 | | - BaseStylesType, |
7 | | - ComponentStyleType, |
8 | | - StyledType, |
9 | | - StyledElementAttrsType, |
10 | | - StyledElementType, |
11 | | - TagNameOrStyledElementType |
12 | | -} from './types' |
| 4 | +import createStyled from './createStyled' |
13 | 5 |
|
14 | 6 | const jssDefault = createJss(preset()) |
15 | 7 |
|
16 | | -const createStyled = ( |
17 | | - jss?: Function = jssDefault |
18 | | -) => ( |
19 | | - baseStyles: BaseStylesType = {} |
20 | | -): StyledType => { |
21 | | - let staticSheet |
22 | | - let dynamicSheet |
23 | | - |
24 | | - const mountSheets = () => { |
25 | | - if (!staticSheet) { |
26 | | - staticSheet = jss.createStyleSheet(baseStyles, { |
27 | | - meta: 'StaticBaseSheet', |
28 | | - }).attach() |
29 | | - |
30 | | - dynamicSheet = jss.createStyleSheet({}, { |
31 | | - link: true, |
32 | | - meta: 'DynamicComponentSheet', |
33 | | - }).attach() |
34 | | - } |
35 | | - |
36 | | - return {staticSheet, dynamicSheet} |
37 | | - } |
38 | | - |
39 | | - return Object.assign(( |
40 | | - tagNameOrStyledElement: TagNameOrStyledElementType, |
41 | | - ownStyle: ComponentStyleType |
42 | | - ): StyledElementType => { |
43 | | - const {tagName, style}: StyledElementAttrsType = typeof tagNameOrStyledElement === 'string' |
44 | | - ? {tagName: tagNameOrStyledElement, style: {}} |
45 | | - : tagNameOrStyledElement |
46 | | - |
47 | | - const elementStyle = {...style, ...ownStyle} |
48 | | - |
49 | | - return styled({tagName, baseStyles, elementStyle, mountSheets}) |
50 | | - }, {mountSheets, styles: baseStyles}) |
51 | | -} |
52 | | - |
53 | | -const defaultStyledCreator = createStyled() |
54 | | -const defaultStyled = defaultStyledCreator() |
55 | | - |
56 | | -export { |
57 | | - createStyled, |
58 | | - defaultStyledCreator as Styled, |
59 | | -} |
60 | | - |
61 | | -export default defaultStyled |
| 8 | +export const Styled = createStyled(jssDefault) |
| 9 | +export default Styled() |
62 | 10 |
|
63 | 11 | export {default as injectStyled} from './injectStyled' |
0 commit comments