@tamagui/next-theme 1.59.4 → 1.60.0

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.
@@ -43,7 +43,7 @@ var import_useIsomorphicLayoutEffect = require("./useIsomorphicLayoutEffect");
43
43
  const NextThemeProvider = (0, import_react.memo)(
44
44
  ({
45
45
  forcedTheme,
46
- disableTransitionOnChange = true,
46
+ disableTransitionOnChange = false,
47
47
  enableSystem = true,
48
48
  enableColorScheme = true,
49
49
  storageKey = "theme",
@@ -62,16 +62,17 @@ const NextThemeProvider = (0, import_react.memo)(
62
62
  const [resolvedTheme, setResolvedTheme] = (0, import_react.useState)(() => (0, import_helpers.getTheme)(storageKey));
63
63
  const attrs = !value ? themes : Object.values(value);
64
64
  const handleMediaQuery = (0, import_use_event.useEvent)((e) => {
65
- const systemTheme2 = (0, import_helpers.getSystemTheme)(e);
66
- React.startTransition(() => {
67
- setResolvedTheme(systemTheme2);
68
- });
65
+ const _ = (0, import_helpers.getSystemTheme)(e);
66
+ const update = () => setResolvedTheme(_);
67
+ if (disableTransitionOnChange) {
68
+ update();
69
+ } else {
70
+ React.startTransition(() => update());
71
+ }
69
72
  if (theme === "system" && !forcedTheme) {
70
- handleChangeTheme(systemTheme2, false);
73
+ handleChangeTheme(_, false);
71
74
  }
72
75
  });
73
- const mediaListener = (0, import_react.useRef)(handleMediaQuery);
74
- mediaListener.current = handleMediaQuery;
75
76
  const handleChangeTheme = (0, import_use_event.useEvent)(
76
77
  (theme2, updateStorage = true, updateDOM = true) => {
77
78
  let name = (value == null ? void 0 : value[theme2]) || theme2;
@@ -98,12 +99,11 @@ const NextThemeProvider = (0, import_react.memo)(
98
99
  }
99
100
  );
100
101
  (0, import_useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(() => {
101
- const handler = (...args) => mediaListener.current(...args);
102
102
  const media = window.matchMedia(import_constants.MEDIA);
103
- media.addListener(handler);
104
- handler(media);
103
+ media.addListener(handleMediaQuery);
104
+ handleMediaQuery(media);
105
105
  return () => {
106
- media.removeListener(handler);
106
+ media.removeListener(handleMediaQuery);
107
107
  };
108
108
  }, []);
109
109
  const set = (0, import_use_event.useEvent)((newTheme) => {
@@ -151,7 +151,6 @@ const NextThemeProvider = (0, import_react.memo)(
151
151
  const next = order[(order.indexOf(theme) + 1) % order.length];
152
152
  set(next);
153
153
  });
154
- const contextResolvedTheme = theme === "system" ? resolvedTheme : theme;
155
154
  const systemTheme = enableSystem ? resolvedTheme : void 0;
156
155
  const contextValue = (0, import_react.useMemo)(() => {
157
156
  const value2 = {
@@ -160,7 +159,7 @@ const NextThemeProvider = (0, import_react.memo)(
160
159
  set,
161
160
  toggle,
162
161
  forcedTheme,
163
- resolvedTheme: contextResolvedTheme,
162
+ resolvedTheme: theme === "system" ? resolvedTheme : theme,
164
163
  themes: enableSystem ? [...themes, "system"] : themes,
165
164
  systemTheme
166
165
  };
@@ -170,7 +169,7 @@ const NextThemeProvider = (0, import_react.memo)(
170
169
  set,
171
170
  toggle,
172
171
  forcedTheme,
173
- contextResolvedTheme,
172
+ resolvedTheme,
174
173
  enableSystem,
175
174
  themes,
176
175
  systemTheme
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/NextThemeProvider.tsx"],
4
- "mappings": "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",
5
- "names": ["systemTheme", "theme", "value", "NextHead"]
4
+ "mappings": "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",
5
+ "names": ["theme", "value", "NextHead"]
6
6
  }
@@ -2,7 +2,7 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
2
  import { useEvent } from "@tamagui/use-event";
3
3
  import NextHead from "next/head";
4
4
  import * as React from "react";
5
- import { memo, useEffect, useMemo, useRef, useState } from "react";
5
+ import { memo, useEffect, useMemo, useState } from "react";
6
6
  import { MEDIA, colorSchemes } from "./constants";
7
7
  import { getSystemTheme, getTheme } from "./helpers";
8
8
  import { ThemeSettingContext } from "./ThemeSettingContext";
@@ -10,7 +10,7 @@ import { useIsomorphicLayoutEffect } from "./useIsomorphicLayoutEffect";
10
10
  const NextThemeProvider = memo(
11
11
  ({
12
12
  forcedTheme,
13
- disableTransitionOnChange = true,
13
+ disableTransitionOnChange = false,
14
14
  enableSystem = true,
15
15
  enableColorScheme = true,
16
16
  storageKey = "theme",
@@ -29,16 +29,17 @@ const NextThemeProvider = memo(
29
29
  const [resolvedTheme, setResolvedTheme] = useState(() => getTheme(storageKey));
30
30
  const attrs = !value ? themes : Object.values(value);
31
31
  const handleMediaQuery = useEvent((e) => {
32
- const systemTheme2 = getSystemTheme(e);
33
- React.startTransition(() => {
34
- setResolvedTheme(systemTheme2);
35
- });
32
+ const _ = getSystemTheme(e);
33
+ const update = () => setResolvedTheme(_);
34
+ if (disableTransitionOnChange) {
35
+ update();
36
+ } else {
37
+ React.startTransition(() => update());
38
+ }
36
39
  if (theme === "system" && !forcedTheme) {
37
- handleChangeTheme(systemTheme2, false);
40
+ handleChangeTheme(_, false);
38
41
  }
39
42
  });
40
- const mediaListener = useRef(handleMediaQuery);
41
- mediaListener.current = handleMediaQuery;
42
43
  const handleChangeTheme = useEvent(
43
44
  (theme2, updateStorage = true, updateDOM = true) => {
44
45
  let name = (value == null ? void 0 : value[theme2]) || theme2;
@@ -65,12 +66,11 @@ const NextThemeProvider = memo(
65
66
  }
66
67
  );
67
68
  useIsomorphicLayoutEffect(() => {
68
- const handler = (...args) => mediaListener.current(...args);
69
69
  const media = window.matchMedia(MEDIA);
70
- media.addListener(handler);
71
- handler(media);
70
+ media.addListener(handleMediaQuery);
71
+ handleMediaQuery(media);
72
72
  return () => {
73
- media.removeListener(handler);
73
+ media.removeListener(handleMediaQuery);
74
74
  };
75
75
  }, []);
76
76
  const set = useEvent((newTheme) => {
@@ -118,7 +118,6 @@ const NextThemeProvider = memo(
118
118
  const next = order[(order.indexOf(theme) + 1) % order.length];
119
119
  set(next);
120
120
  });
121
- const contextResolvedTheme = theme === "system" ? resolvedTheme : theme;
122
121
  const systemTheme = enableSystem ? resolvedTheme : void 0;
123
122
  const contextValue = useMemo(() => {
124
123
  const value2 = {
@@ -127,7 +126,7 @@ const NextThemeProvider = memo(
127
126
  set,
128
127
  toggle,
129
128
  forcedTheme,
130
- resolvedTheme: contextResolvedTheme,
129
+ resolvedTheme: theme === "system" ? resolvedTheme : theme,
131
130
  themes: enableSystem ? [...themes, "system"] : themes,
132
131
  systemTheme
133
132
  };
@@ -137,7 +136,7 @@ const NextThemeProvider = memo(
137
136
  set,
138
137
  toggle,
139
138
  forcedTheme,
140
- contextResolvedTheme,
139
+ resolvedTheme,
141
140
  enableSystem,
142
141
  themes,
143
142
  systemTheme
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/NextThemeProvider.tsx"],
4
- "mappings": "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",
5
- "names": ["systemTheme", "theme", "value"]
4
+ "mappings": "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",
5
+ "names": ["theme", "value"]
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/next-theme",
3
- "version": "1.59.4",
3
+ "version": "1.60.0",
4
4
  "sideEffects": false,
5
5
  "source": "src/index.ts",
6
6
  "types": "./types/index.d.ts",
@@ -16,13 +16,13 @@
16
16
  "watch": "tamagui-build --watch"
17
17
  },
18
18
  "dependencies": {
19
- "@tamagui/use-event": "1.59.4"
19
+ "@tamagui/use-event": "1.60.0"
20
20
  },
21
21
  "peerDependencies": {
22
22
  "react": "*"
23
23
  },
24
24
  "devDependencies": {
25
- "@tamagui/build": "1.59.4",
25
+ "@tamagui/build": "1.60.0",
26
26
  "react": "^18.2.0"
27
27
  },
28
28
  "publishConfig": {
@@ -13,7 +13,7 @@ import { ThemeProviderProps, UseThemeProps } from './UseThemeProps'
13
13
  export const NextThemeProvider = memo(
14
14
  ({
15
15
  forcedTheme,
16
- disableTransitionOnChange = true,
16
+ disableTransitionOnChange = false,
17
17
  enableSystem = true,
18
18
  enableColorScheme = true,
19
19
  storageKey = 'theme',
@@ -30,23 +30,21 @@ export const NextThemeProvider = memo(
30
30
  }: ThemeProviderProps) => {
31
31
  const [theme, setThemeState] = useState(() => getTheme(storageKey, defaultTheme))
32
32
  const [resolvedTheme, setResolvedTheme] = useState(() => getTheme(storageKey))
33
- // const resolvedTheme = React.useDeferredValue(resolvedThemeFast)
34
33
  const attrs = !value ? themes : Object.values(value)
35
34
 
36
35
  const handleMediaQuery = useEvent((e?) => {
37
- const systemTheme = getSystemTheme(e)
38
- React.startTransition(() => {
39
- setResolvedTheme(systemTheme)
40
- })
36
+ const _ = getSystemTheme(e)
37
+ const update = () => setResolvedTheme(_)
38
+ if (disableTransitionOnChange) {
39
+ update()
40
+ } else {
41
+ React.startTransition(() => update())
42
+ }
41
43
  if (theme === 'system' && !forcedTheme) {
42
- handleChangeTheme(systemTheme, false)
44
+ handleChangeTheme(_, false)
43
45
  }
44
46
  })
45
47
 
46
- // Ref hack to avoid adding handleMediaQuery as a dep
47
- const mediaListener = useRef(handleMediaQuery)
48
- mediaListener.current = handleMediaQuery
49
-
50
48
  const handleChangeTheme = useEvent(
51
49
  (theme, updateStorage = true, updateDOM = true) => {
52
50
  let name = value?.[theme] || theme
@@ -79,14 +77,13 @@ export const NextThemeProvider = memo(
79
77
  )
80
78
 
81
79
  useIsomorphicLayoutEffect(() => {
82
- const handler = (...args: any) => mediaListener.current(...args)
83
80
  // Always listen to System preference
84
81
  const media = window.matchMedia(MEDIA)
85
82
  // Intentionally use deprecated listener methods to support iOS & old browsers
86
- media.addListener(handler)
87
- handler(media)
83
+ media.addListener(handleMediaQuery)
84
+ handleMediaQuery(media)
88
85
  return () => {
89
- media.removeListener(handler)
86
+ media.removeListener(handleMediaQuery)
90
87
  }
91
88
  }, [])
92
89
 
@@ -157,7 +154,6 @@ export const NextThemeProvider = memo(
157
154
  set(next)
158
155
  })
159
156
 
160
- const contextResolvedTheme = theme === 'system' ? resolvedTheme : theme
161
157
  const systemTheme = (enableSystem ? resolvedTheme : undefined) as
162
158
  | 'light'
163
159
  | 'dark'
@@ -170,7 +166,7 @@ export const NextThemeProvider = memo(
170
166
  set,
171
167
  toggle,
172
168
  forcedTheme,
173
- resolvedTheme: contextResolvedTheme,
169
+ resolvedTheme: theme === 'system' ? resolvedTheme : theme,
174
170
  themes: enableSystem ? [...themes, 'system'] : themes,
175
171
  systemTheme,
176
172
  } as const
@@ -180,7 +176,7 @@ export const NextThemeProvider = memo(
180
176
  set,
181
177
  toggle,
182
178
  forcedTheme,
183
- contextResolvedTheme,
179
+ resolvedTheme,
184
180
  enableSystem,
185
181
  themes,
186
182
  systemTheme,
@@ -1 +1 @@
1
- {"version":3,"file":"NextThemeProvider.d.ts","sourceRoot":"","sources":["../src/NextThemeProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAQ9B,OAAO,EAAE,kBAAkB,EAAiB,MAAM,iBAAiB,CAAA;AAEnE,eAAO,MAAM,iBAAiB,sMAiBzB,kBAAkB,iBAmLtB,CAAA"}
1
+ {"version":3,"file":"NextThemeProvider.d.ts","sourceRoot":"","sources":["../src/NextThemeProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAQ9B,OAAO,EAAE,kBAAkB,EAAiB,MAAM,iBAAiB,CAAA;AAEnE,eAAO,MAAM,iBAAiB,sMAiBzB,kBAAkB,iBA+KtB,CAAA"}