@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.
Files changed (40) hide show
  1. package/dist/cjs/createFont.js +11 -4
  2. package/dist/cjs/createFont.js.map +2 -2
  3. package/dist/cjs/createFont.test.js +125 -0
  4. package/dist/cjs/createFont.test.js.map +7 -0
  5. package/dist/cjs/helpers/ThemeManager.js +1 -1
  6. package/dist/cjs/helpers/ThemeManager.js.map +2 -2
  7. package/dist/cjs/helpers/ThemeManager.test.js +62 -0
  8. package/dist/cjs/helpers/ThemeManager.test.js.map +7 -0
  9. package/dist/cjs/helpers/getSplitStyles.js +0 -2
  10. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  11. package/dist/cjs/helpers/getStylesAtomic.native.js.map +2 -2
  12. package/dist/cjs/helpers/themeable.js +5 -10
  13. package/dist/cjs/helpers/themeable.js.map +2 -2
  14. package/dist/cjs/views/ThemeInverse.js +24 -16
  15. package/dist/cjs/views/ThemeInverse.js.map +2 -2
  16. package/dist/esm/createFont.js +11 -4
  17. package/dist/esm/createFont.js.map +2 -2
  18. package/dist/esm/createFont.test.js +124 -0
  19. package/dist/esm/createFont.test.js.map +7 -0
  20. package/dist/esm/helpers/ThemeManager.js +1 -1
  21. package/dist/esm/helpers/ThemeManager.js.map +2 -2
  22. package/dist/esm/helpers/ThemeManager.test.js +61 -0
  23. package/dist/esm/helpers/ThemeManager.test.js.map +7 -0
  24. package/dist/esm/helpers/getSplitStyles.js +0 -2
  25. package/dist/esm/helpers/getSplitStyles.js.map +2 -2
  26. package/dist/esm/helpers/getStylesAtomic.native.js.map +2 -2
  27. package/dist/esm/helpers/themeable.js +5 -10
  28. package/dist/esm/helpers/themeable.js.map +2 -2
  29. package/dist/esm/views/ThemeInverse.js +23 -16
  30. package/dist/esm/views/ThemeInverse.js.map +2 -2
  31. package/package.json +13 -13
  32. package/src/createFont.test.ts +129 -0
  33. package/src/createFont.ts +12 -5
  34. package/src/helpers/ThemeManager.tsx +1 -1
  35. package/src/helpers/getSplitStyles.tsx +0 -1
  36. package/src/helpers/getStylesAtomic.native.ts +1 -0
  37. package/src/helpers/themeable.tsx +4 -8
  38. package/src/views/ThemeInverse.tsx +30 -19
  39. package/types/createFont.test.d.ts +2 -0
  40. 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 const ThemeInverse = ({
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
- // ssr
19
- useIsomorphicLayoutEffect(() => {
20
- if (themeName.startsWith('dark')) {
21
- setName('light')
22
- } else if (themeName.startsWith('light')) {
23
- setName('dark')
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 <Theme name={name}>{children}</Theme>
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
  }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=createFont.test.d.ts.map
@@ -1,6 +1,9 @@
1
1
  import React from 'react';
2
- export declare const ThemeInverse: ({ children, disable, }: {
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