@xylabs/sdk-react 2.9.29 → 2.9.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs5/components/InvertableThemeProvider/InvertableTheme.d.ts +2 -0
- package/dist/cjs5/components/InvertableThemeProvider/InvertableThemeProviderProps.d.ts +5 -0
- package/dist/cjs5/hooks/index.d.ts +2 -0
- package/dist/cjs5/hooks/useInterval.d.ts +2 -0
- package/dist/cjs5/hooks/useTimeout.d.ts +2 -0
- package/dist/cjs5/index.js +47 -15
- package/dist/cjs5/index.js.map +1 -1
- package/dist/components/InvertableThemeProvider/InvertableTheme.d.ts +2 -0
- package/dist/components/InvertableThemeProvider/InvertableThemeProvider.js +13 -11
- package/dist/components/InvertableThemeProvider/InvertableThemeProvider.js.map +1 -1
- package/dist/components/InvertableThemeProvider/InvertableThemeProviderProps.d.ts +5 -0
- package/dist/esm2015/components/InvertableThemeProvider/InvertableTheme.d.ts +2 -0
- package/dist/esm2015/components/InvertableThemeProvider/InvertableThemeProviderProps.d.ts +5 -0
- package/dist/esm2015/hooks/index.d.ts +2 -0
- package/dist/esm2015/hooks/useInterval.d.ts +2 -0
- package/dist/esm2015/hooks/useTimeout.d.ts +2 -0
- package/dist/esm2015/index.js +46 -16
- package/dist/esm2015/index.js.map +1 -1
- package/dist/esm2017/components/InvertableThemeProvider/InvertableTheme.d.ts +2 -0
- package/dist/esm2017/components/InvertableThemeProvider/InvertableThemeProviderProps.d.ts +5 -0
- package/dist/esm2017/hooks/index.d.ts +2 -0
- package/dist/esm2017/hooks/useInterval.d.ts +2 -0
- package/dist/esm2017/hooks/useTimeout.d.ts +2 -0
- package/dist/esm2017/index.js +46 -16
- package/dist/esm2017/index.js.map +1 -1
- package/dist/esm5/components/InvertableThemeProvider/InvertableTheme.d.ts +2 -0
- package/dist/esm5/components/InvertableThemeProvider/InvertableThemeProviderProps.d.ts +5 -0
- package/dist/esm5/hooks/index.d.ts +2 -0
- package/dist/esm5/hooks/useInterval.d.ts +2 -0
- package/dist/esm5/hooks/useTimeout.d.ts +2 -0
- package/dist/esm5/index.js +46 -16
- package/dist/esm5/index.js.map +1 -1
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.js +2 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useInterval.d.ts +2 -0
- package/dist/hooks/useInterval.js +15 -0
- package/dist/hooks/useInterval.js.map +1 -0
- package/dist/hooks/useTimeout.d.ts +2 -0
- package/dist/hooks/useTimeout.js +15 -0
- package/dist/hooks/useTimeout.js.map +1 -0
- package/dist/hooks/useWebP.js +4 -4
- package/dist/hooks/useWebP.js.map +1 -1
- package/dist/node/components/InvertableThemeProvider/InvertableTheme.d.ts +2 -0
- package/dist/node/components/InvertableThemeProvider/InvertableThemeProviderProps.d.ts +5 -0
- package/dist/node/hooks/index.d.ts +2 -0
- package/dist/node/hooks/useInterval.d.ts +2 -0
- package/dist/node/hooks/useTimeout.d.ts +2 -0
- package/dist/node/index.js +47 -15
- package/dist/node/index.js.map +1 -1
- package/dist/node-esm/components/InvertableThemeProvider/InvertableTheme.d.ts +2 -0
- package/dist/node-esm/components/InvertableThemeProvider/InvertableThemeProviderProps.d.ts +5 -0
- package/dist/node-esm/hooks/index.d.ts +2 -0
- package/dist/node-esm/hooks/useInterval.d.ts +2 -0
- package/dist/node-esm/hooks/useTimeout.d.ts +2 -0
- package/dist/node-esm/index.js +46 -16
- package/dist/node-esm/index.js.map +1 -1
- package/package.json +15 -15
- package/src/components/InvertableThemeProvider/InvertableTheme.tsx +2 -0
- package/src/components/InvertableThemeProvider/InvertableThemeProvider.tsx +20 -13
- package/src/components/InvertableThemeProvider/InvertableThemeProviderProps.ts +5 -0
- package/src/hooks/index.ts +2 -0
- package/src/hooks/useInterval.ts +19 -0
- package/src/hooks/useTimeout.ts +19 -0
- package/src/hooks/useWebP.tsx +4 -6
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@types/react-helmet": "^6.1.5",
|
|
13
13
|
"@xylabs/sdk-js": "^2.4.2",
|
|
14
|
-
"axios": "^0.
|
|
14
|
+
"axios": "^0.26.0",
|
|
15
15
|
"bn.js": "^5.2.0",
|
|
16
16
|
"lodash": "^4.17.21",
|
|
17
17
|
"md5": "^2.3.0",
|
|
@@ -22,30 +22,30 @@
|
|
|
22
22
|
},
|
|
23
23
|
"description": "Common React library for all XY Labs projects that use React",
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@babel/core": "^7.17.
|
|
25
|
+
"@babel/core": "^7.17.4",
|
|
26
26
|
"@emotion/react": "^11.7.1",
|
|
27
27
|
"@emotion/styled": "^11.6.0",
|
|
28
28
|
"@ethersproject/abstract-signer": "^5.5.0",
|
|
29
29
|
"@ethersproject/providers": "^5.5.3",
|
|
30
|
-
"@mui/icons-material": "^5.4.
|
|
31
|
-
"@mui/material": "^5.4.
|
|
32
|
-
"@mui/styles": "^5.4.
|
|
30
|
+
"@mui/icons-material": "^5.4.2",
|
|
31
|
+
"@mui/material": "^5.4.2",
|
|
32
|
+
"@mui/styles": "^5.4.2",
|
|
33
33
|
"@rollup/plugin-image": "^2.1.1",
|
|
34
34
|
"@rollup/plugin-json": "^4.1.0",
|
|
35
35
|
"@rollup/plugin-replace": "^3.1.0",
|
|
36
36
|
"@rollup/plugin-strip": "^2.1.0",
|
|
37
37
|
"@rollup/plugin-typescript": "^8.3.0",
|
|
38
|
-
"@storybook/addon-actions": "^6.4.
|
|
39
|
-
"@storybook/addon-docs": "^6.4.
|
|
40
|
-
"@storybook/addon-essentials": "^6.4.
|
|
41
|
-
"@storybook/addon-links": "^6.4.
|
|
42
|
-
"@storybook/components": "^6.4.
|
|
43
|
-
"@storybook/core-events": "^6.4.
|
|
44
|
-
"@storybook/react": "^6.4.
|
|
38
|
+
"@storybook/addon-actions": "^6.4.19",
|
|
39
|
+
"@storybook/addon-docs": "^6.4.19",
|
|
40
|
+
"@storybook/addon-essentials": "^6.4.19",
|
|
41
|
+
"@storybook/addon-links": "^6.4.19",
|
|
42
|
+
"@storybook/components": "^6.4.19",
|
|
43
|
+
"@storybook/core-events": "^6.4.19",
|
|
44
|
+
"@storybook/react": "^6.4.19",
|
|
45
45
|
"@types/bn.js": "^5.1.0",
|
|
46
46
|
"@types/lodash": "^4.14.178",
|
|
47
47
|
"@types/md5": "^2.3.2",
|
|
48
|
-
"@types/node": "^17.0.
|
|
48
|
+
"@types/node": "^17.0.18",
|
|
49
49
|
"@types/numeral": "^2.0.2",
|
|
50
50
|
"@types/react": "^17.0.39",
|
|
51
51
|
"@types/react-dom": "^17.0.11",
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"ts-node": "^10.5.0",
|
|
72
72
|
"tslib": "^2.3.1",
|
|
73
73
|
"typescript": "^4.5.5",
|
|
74
|
-
"webpack": "^5.
|
|
74
|
+
"webpack": "^5.69.0"
|
|
75
75
|
},
|
|
76
76
|
"esm5": "dist/esm5/index.js",
|
|
77
77
|
"exports": {
|
|
@@ -125,6 +125,6 @@
|
|
|
125
125
|
},
|
|
126
126
|
"sideEffects": false,
|
|
127
127
|
"types": "dist/index.d.ts",
|
|
128
|
-
"version": "2.9.
|
|
128
|
+
"version": "2.9.33",
|
|
129
129
|
"packageManager": "yarn@3.1.1"
|
|
130
130
|
}
|
|
@@ -28,10 +28,13 @@ export const InvertableThemeProvider: React.FC<InvertableThemeProviderProps> = (
|
|
|
28
28
|
invert = false,
|
|
29
29
|
noResponsiveFonts,
|
|
30
30
|
darkTheme,
|
|
31
|
+
darkOptions,
|
|
32
|
+
lightOptions,
|
|
31
33
|
}) => {
|
|
32
|
-
|
|
33
|
-
const
|
|
34
|
-
const
|
|
34
|
+
const parentContext = useContext(InvertableThemeContext)
|
|
35
|
+
const clonedOptions = cloneDeep(options ?? parentContext.options ?? {})
|
|
36
|
+
const clonedDarkOptions = cloneDeep(darkOptions ?? darkTheme ?? parentContext.darkOptions)
|
|
37
|
+
const clonedLightOptions = cloneDeep(lightOptions ?? parentContext.lightOptions)
|
|
35
38
|
|
|
36
39
|
clonedOptions.palette = clonedOptions.palette ?? {}
|
|
37
40
|
|
|
@@ -43,11 +46,9 @@ export const InvertableThemeProvider: React.FC<InvertableThemeProviderProps> = (
|
|
|
43
46
|
clonedOptions.palette.mode = dark ? 'dark' : 'light'
|
|
44
47
|
}
|
|
45
48
|
|
|
46
|
-
|
|
47
|
-
internalDarkTheme = darkTheme
|
|
48
|
-
}
|
|
49
|
+
const modeOptions = clonedOptions.palette.mode === 'dark' ? clonedDarkOptions : clonedLightOptions
|
|
49
50
|
|
|
50
|
-
let themeOptions = merge(clonedOptions,
|
|
51
|
+
let themeOptions = merge({}, clonedOptions, modeOptions)
|
|
51
52
|
|
|
52
53
|
if (resolve) {
|
|
53
54
|
themeOptions = resolveThemeColors(themeOptions)
|
|
@@ -55,15 +56,21 @@ export const InvertableThemeProvider: React.FC<InvertableThemeProviderProps> = (
|
|
|
55
56
|
|
|
56
57
|
const theme: Theme = noResponsiveFonts ? createTheme(themeOptions) : responsiveFontSizes(createTheme(themeOptions))
|
|
57
58
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
<InvertableThemeContext.Provider
|
|
59
|
+
const Provider: React.FC = () => {
|
|
60
|
+
return (
|
|
61
|
+
<InvertableThemeContext.Provider
|
|
62
|
+
value={{ darkOptions: clonedDarkOptions, lightOptions: clonedLightOptions, options: clonedOptions }}
|
|
63
|
+
>
|
|
61
64
|
<ThemeProvider theme={theme}>{children}</ThemeProvider>
|
|
62
65
|
</InvertableThemeContext.Provider>
|
|
66
|
+
)
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return scoped ? (
|
|
70
|
+
<ScopedCssBaseline>
|
|
71
|
+
<Provider />
|
|
63
72
|
</ScopedCssBaseline>
|
|
64
73
|
) : (
|
|
65
|
-
<
|
|
66
|
-
<ThemeProvider theme={theme}>{children}</ThemeProvider>
|
|
67
|
-
</InvertableThemeContext.Provider>
|
|
74
|
+
<Provider />
|
|
68
75
|
)
|
|
69
76
|
}
|
|
@@ -6,7 +6,12 @@ interface InvertableThemeProviderProps {
|
|
|
6
6
|
invert?: boolean
|
|
7
7
|
noResponsiveFonts?: boolean
|
|
8
8
|
options?: ThemeOptions
|
|
9
|
+
/**
|
|
10
|
+
* @deprecated use darkOptions instead
|
|
11
|
+
*/
|
|
9
12
|
darkTheme?: ThemeOptions
|
|
13
|
+
darkOptions?: ThemeOptions
|
|
14
|
+
lightOptions?: ThemeOptions
|
|
10
15
|
resolve?: boolean
|
|
11
16
|
}
|
|
12
17
|
|
package/src/hooks/index.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
export * from './useBreakpoint'
|
|
2
|
+
export * from './useInterval'
|
|
2
3
|
export * from './useLocalStorage'
|
|
3
4
|
export * from './useMediaQuery'
|
|
4
5
|
export * from './useMounted'
|
|
5
6
|
export * from './useNavigateToEthAddress'
|
|
6
7
|
export * from './useSpacing'
|
|
8
|
+
export * from './useTimeout'
|
|
7
9
|
export * from './useUserEvents'
|
|
8
10
|
export * from './useWebP'
|
|
9
11
|
export * from './useWindowSize'
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { useEffect, useRef } from 'react'
|
|
2
|
+
|
|
3
|
+
export const useInterval = (callback: () => void, delay: number) => {
|
|
4
|
+
const intervalRef = useRef<number>(-1)
|
|
5
|
+
const savedCallback = useRef(callback)
|
|
6
|
+
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
savedCallback.current = callback
|
|
9
|
+
}, [callback])
|
|
10
|
+
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
const tick = () => savedCallback.current()
|
|
13
|
+
intervalRef.current = window.setInterval(tick, delay)
|
|
14
|
+
|
|
15
|
+
return () => window.clearInterval(intervalRef.current)
|
|
16
|
+
}, [delay])
|
|
17
|
+
|
|
18
|
+
return intervalRef
|
|
19
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { useEffect, useRef } from 'react'
|
|
2
|
+
|
|
3
|
+
export const useTimeout = (callback: () => void, delay: number) => {
|
|
4
|
+
const timeoutRef = useRef<number>(-1)
|
|
5
|
+
const savedCallback = useRef(callback)
|
|
6
|
+
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
savedCallback.current = callback
|
|
9
|
+
}, [callback])
|
|
10
|
+
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
const tick = () => savedCallback.current()
|
|
13
|
+
timeoutRef.current = window.setTimeout(tick, delay)
|
|
14
|
+
|
|
15
|
+
return () => window.clearTimeout(timeoutRef.current)
|
|
16
|
+
}, [delay])
|
|
17
|
+
|
|
18
|
+
return timeoutRef
|
|
19
|
+
}
|
package/src/hooks/useWebP.tsx
CHANGED
|
@@ -5,16 +5,14 @@ import { useAsyncEffect } from '../lib'
|
|
|
5
5
|
let supportsWebP: boolean | undefined = undefined
|
|
6
6
|
|
|
7
7
|
export const useWebP = (webp: string, alt: string) => {
|
|
8
|
-
const [img, setImg] = useState<string
|
|
9
|
-
supportsWebP === true ? webp : supportsWebP === false ? alt : undefined
|
|
10
|
-
)
|
|
8
|
+
const [img, setImg] = useState<string>()
|
|
11
9
|
useAsyncEffect(
|
|
12
10
|
async (mounted) => {
|
|
13
11
|
if (supportsWebP === undefined) {
|
|
14
12
|
supportsWebP = await getSupportsWebP()
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
}
|
|
14
|
+
if (mounted()) {
|
|
15
|
+
setImg(supportsWebP ? webp : alt)
|
|
18
16
|
}
|
|
19
17
|
},
|
|
20
18
|
[supportsWebP]
|