Skip to content

Commit fbbb43b

Browse files
committed
Update types, remove link for static sheet
1 parent 3ff81d1 commit fbbb43b

4 files changed

Lines changed: 31 additions & 19 deletions

File tree

src/index.js

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,29 @@ import preset from 'jss-preset-default'
55
import filterProps from './utils/filter-props'
66
import composeClasses from './utils/compose-classes'
77
import type {
8-
styledType,
8+
BaseStylesType,
9+
ComponentStylesType,
10+
StyledType,
911
StyledElementAttrsType,
1012
StyledElementType,
11-
tagOrStyledElementTypeype,
13+
TagOrStyledElementTypeype,
1214
StyledElementPropsType
1315
} from './types'
1416

1517
const jssDefault = createJss(preset())
1618

17-
const createStyled = (jss?: Function = jssDefault) => (baseStyles: Object = {}): styledType => {
19+
20+
const createStyled = (
21+
jss?: Function = jssDefault
22+
) => (
23+
baseStyles: BaseStylesType = {}
24+
): StyledType => {
1825
const sheets = {}
1926
let counter = 0
2027

2128
const mountSheets = () => {
2229
if (!sheets.staticSheet) {
2330
sheets.staticSheet = jss.createStyleSheet(baseStyles, {
24-
link: true,
2531
meta: 'StaticBaseSheet',
2632
}).attach()
2733

@@ -33,8 +39,8 @@ const createStyled = (jss?: Function = jssDefault) => (baseStyles: Object = {}):
3339
}
3440

3541
const styled = (
36-
tagOrStyledElement: tagOrStyledElementTypeype,
37-
ownStyles: Object
42+
tagOrStyledElement: TagOrStyledElementTypeype,
43+
ownStyles: ComponentStylesType
3844
): StyledElementType => {
3945
const {tag, styles}: StyledElementAttrsType = typeof tagOrStyledElement === 'string'
4046
? {tag: tagOrStyledElement, styles: {}}
@@ -45,9 +51,8 @@ const createStyled = (jss?: Function = jssDefault) => (baseStyles: Object = {}):
4551
const staticTag = `${tag}-${++counter}`
4652

4753
return class StyledElement extends PureComponent {
48-
static tag = tag
49-
50-
static styles = elementStyles
54+
static tag: string = tag
55+
static styles: ComponentStylesType = elementStyles
5156

5257
props: StyledElementPropsType
5358

src/injectStyled.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import {createElement} from 'react'
22

33
import composeClasses from './utils/compose-classes'
4-
import type {styledType} from './types'
4+
import type {StyledType} from './types'
55

6-
const injectStyled = (styled: styledType) => (InnerComponent: ReactClass<any>) => {
6+
const injectStyled = (styled: StyledType) => (InnerComponent: ReactClass<any>) => {
77
styled.mountSheets()
88

99
const {sheets} = styled

src/tests/App.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import React from 'react'
2-
import type {styledType} from '../types'
2+
import type {StyledType} from '../types'
33

4-
export default (styled: styledType) => {
4+
export default (styled: StyledType) => {
55
const App = styled('div', {
66
margin: 50,
77
})

src/types/index.js

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,22 @@
1-
export type styledType = Function & {
1+
export type JssStyles = Object
2+
export type JssStyle = Object
3+
export type JssStaticSheet = Object
4+
export type JssDynamicSheet = JssStaticSheet
5+
6+
export type BaseStylesType = JssStyles
7+
export type ComponentStylesType = JssStyle
8+
export type StyledType = Function & {
29
sheets: {
310
// TODO: use types from jss
4-
staticSheet: Object,
5-
dynamicSheet: Object,
11+
staticSheet: JssStaticSheet,
12+
dynamicSheet: JssDynamicSheet,
613
},
714
mountSheets: Function,
8-
styles: Object
15+
styles: JssStyles
916
}
10-
export type StyledElementAttrsType = {tag: string, styles: Object}
17+
export type StyledElementAttrsType = {tag: string, styles: ComponentStylesType}
1118
export type StyledElementType = Function & StyledElementAttrsType
12-
export type tagOrStyledElementTypeype = string | StyledElementType
19+
export type TagOrStyledElementTypeype = string | StyledElementType
1320
export type StyledElementPropsType = {
1421
classes: Object,
1522
children: ?any,

0 commit comments

Comments
 (0)