Skip to content

Commit 1b78ac4

Browse files
committed
make useTheme function more streight forward
1 parent 5b34213 commit 1b78ac4

2 files changed

Lines changed: 24 additions & 22 deletions

File tree

packages/react-jss/.size-snapshot.json

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
{
22
"react-jss.js": {
3-
"bundled": 169886,
4-
"minified": 59592,
3+
"bundled": 169726,
4+
"minified": 59567,
55
"gzipped": 19571
66
},
77
"react-jss.min.js": {
8-
"bundled": 112526,
9-
"minified": 42792,
10-
"gzipped": 14525
8+
"bundled": 112366,
9+
"minified": 42767,
10+
"gzipped": 14528
1111
},
1212
"react-jss.cjs.js": {
13-
"bundled": 27813,
14-
"minified": 12346,
15-
"gzipped": 3868
13+
"bundled": 27659,
14+
"minified": 12314,
15+
"gzipped": 3863
1616
},
1717
"react-jss.esm.js": {
18-
"bundled": 25396,
19-
"minified": 10449,
20-
"gzipped": 3643,
18+
"bundled": 25242,
19+
"minified": 10417,
20+
"gzipped": 3635,
2121
"treeshaked": {
2222
"rollup": {
2323
"code": 1815,

packages/react-jss/src/createUseStyles.js

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,22 +18,24 @@ import getSheetClasses from './utils/getSheetClasses'
1818

1919
const useEffectOrLayoutEffect = isInBrowser ? React.useLayoutEffect : React.useEffect
2020

21-
const noTheme = {}
21+
const noTheme: {} = {}
2222

23-
type CreateUseStyles = <Theme: {}>(Styles<Theme>, HookOptions<Theme> | void) => any => Classes
23+
type CreateUseStyles = <Theme: typeof noTheme>(
24+
Styles<Theme>,
25+
HookOptions<Theme> | void
26+
) => any => Classes
2427

25-
const createUseStyles: CreateUseStyles = <Theme: {}>(styles, options = {}) => {
28+
const createUseStyles: CreateUseStyles = <Theme: typeof noTheme>(styles, options = {}) => {
2629
const {index = getSheetIndex(), theming, name, ...sheetOptions} = options
2730
const ThemeContext = (theming && theming.context) || DefaultThemeContext
2831

29-
/* eslint-disable no-unused-vars */
30-
const useTheme =
31-
typeof styles === 'function'
32-
? // $FlowFixMe[incompatible-return]
33-
(propsTheme?: Theme): Theme => propsTheme || React.useContext(ThemeContext) || noTheme
34-
: // $FlowFixMe[incompatible-return]
35-
(_?: Theme): Theme => noTheme
36-
/* eslint-enable no-unused-vars */
32+
const useTheme = (theme?: Theme): Theme | typeof noTheme => {
33+
if (typeof styles === 'function') {
34+
return theme || React.useContext(ThemeContext) || noTheme
35+
}
36+
37+
return noTheme
38+
}
3739

3840
return function useStyles(data: any) {
3941
const isFirstMount = React.useRef(true)

0 commit comments

Comments
 (0)