@tamagui/core 1.0.1-beta.218 → 1.0.1-beta.220
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/cjs/createFont.js +11 -4
- package/dist/cjs/createFont.js.map +2 -2
- package/dist/cjs/createFont.test.js +125 -0
- package/dist/cjs/createFont.test.js.map +7 -0
- package/dist/cjs/helpers/ThemeManager.js +1 -1
- package/dist/cjs/helpers/ThemeManager.js.map +2 -2
- package/dist/cjs/helpers/ThemeManager.test.js +62 -0
- package/dist/cjs/helpers/ThemeManager.test.js.map +7 -0
- package/dist/cjs/helpers/getSplitStyles.js +0 -2
- package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
- package/dist/cjs/helpers/getStylesAtomic.native.js.map +2 -2
- package/dist/cjs/helpers/themeable.js +5 -10
- package/dist/cjs/helpers/themeable.js.map +2 -2
- package/dist/cjs/views/ThemeInverse.js +24 -16
- package/dist/cjs/views/ThemeInverse.js.map +2 -2
- package/dist/esm/createFont.js +11 -4
- package/dist/esm/createFont.js.map +2 -2
- package/dist/esm/createFont.test.js +124 -0
- package/dist/esm/createFont.test.js.map +7 -0
- package/dist/esm/helpers/ThemeManager.js +1 -1
- package/dist/esm/helpers/ThemeManager.js.map +2 -2
- package/dist/esm/helpers/ThemeManager.test.js +61 -0
- package/dist/esm/helpers/ThemeManager.test.js.map +7 -0
- package/dist/esm/helpers/getSplitStyles.js +0 -2
- package/dist/esm/helpers/getSplitStyles.js.map +2 -2
- package/dist/esm/helpers/getStylesAtomic.native.js.map +2 -2
- package/dist/esm/helpers/themeable.js +5 -10
- package/dist/esm/helpers/themeable.js.map +2 -2
- package/dist/esm/views/ThemeInverse.js +23 -16
- package/dist/esm/views/ThemeInverse.js.map +2 -2
- package/package.json +13 -13
- package/src/createFont.test.ts +129 -0
- package/src/createFont.ts +12 -5
- package/src/helpers/ThemeManager.tsx +1 -1
- package/src/helpers/getSplitStyles.tsx +0 -1
- package/src/helpers/getStylesAtomic.native.ts +1 -0
- package/src/helpers/themeable.tsx +4 -8
- package/src/views/ThemeInverse.tsx +30 -19
- package/types/createFont.test.d.ts +2 -0
- package/types/views/ThemeInverse.d.ts +5 -2
|
@@ -1,32 +1,43 @@
|
|
|
1
|
-
import { useIsomorphicLayoutEffect } from '@tamagui/constants'
|
|
1
|
+
import { isWeb, useIsomorphicLayoutEffect } from '@tamagui/constants'
|
|
2
2
|
import React, { useState } from 'react'
|
|
3
3
|
|
|
4
4
|
import { useDefaultThemeName, useThemeName } from '../hooks/useTheme'
|
|
5
5
|
import { Theme } from './Theme'
|
|
6
6
|
|
|
7
|
-
export
|
|
8
|
-
children,
|
|
9
|
-
disable,
|
|
10
|
-
}: {
|
|
11
|
-
children: React.ReactNode
|
|
7
|
+
export type ThemeInverseProps = {
|
|
12
8
|
disable?: boolean
|
|
13
|
-
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const toggleTheme = (themeName: string) => {
|
|
12
|
+
return themeName.startsWith('light') ? 'dark' : 'light'
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export const useThemeInverse = (props: ThemeInverseProps = {}) => {
|
|
14
16
|
const themeName = useThemeName()
|
|
15
17
|
const defaultTheme = useDefaultThemeName()
|
|
16
18
|
const [name, setName] = useState<null | string>(null)
|
|
19
|
+
const curName = themeName || defaultTheme || ''
|
|
17
20
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
setName(
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}, [defaultTheme, themeName])
|
|
26
|
-
|
|
27
|
-
if (disable) {
|
|
28
|
-
return children as JSX.Element
|
|
21
|
+
if (isWeb) {
|
|
22
|
+
// for SSR must be in effect
|
|
23
|
+
useIsomorphicLayoutEffect(() => {
|
|
24
|
+
setName(toggleTheme(curName))
|
|
25
|
+
}, [defaultTheme, themeName])
|
|
26
|
+
|
|
27
|
+
return props.disable ? null : name
|
|
29
28
|
}
|
|
30
29
|
|
|
31
|
-
return
|
|
30
|
+
return props.disable ? null : toggleTheme(curName)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export const ThemeInverse = ({
|
|
34
|
+
children,
|
|
35
|
+
disable,
|
|
36
|
+
}: ThemeInverseProps & {
|
|
37
|
+
children: React.ReactNode
|
|
38
|
+
}) => {
|
|
39
|
+
const inverseTheme = useThemeInverse({
|
|
40
|
+
disable,
|
|
41
|
+
})
|
|
42
|
+
return <Theme name={inverseTheme}>{children}</Theme>
|
|
32
43
|
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
export declare
|
|
2
|
+
export declare type ThemeInverseProps = {
|
|
3
|
+
disable?: boolean;
|
|
4
|
+
};
|
|
5
|
+
export declare const useThemeInverse: (props?: ThemeInverseProps) => string | null;
|
|
6
|
+
export declare const ThemeInverse: ({ children, disable, }: ThemeInverseProps & {
|
|
3
7
|
children: React.ReactNode;
|
|
4
|
-
disable?: boolean | undefined;
|
|
5
8
|
}) => JSX.Element;
|
|
6
9
|
//# sourceMappingURL=ThemeInverse.d.ts.map
|