@vxrn/color-scheme 1.19.4 → 1.19.6
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/index.cjs +8 -6
- package/dist/cjs/index.native.js +4 -2
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/safeStorage.cjs +40 -0
- package/dist/cjs/safeStorage.native.js +43 -0
- package/dist/cjs/safeStorage.native.js.map +1 -0
- package/dist/cjs/safeStorage.test.cjs +49 -0
- package/dist/cjs/safeStorage.test.native.js +66 -0
- package/dist/cjs/safeStorage.test.native.js.map +1 -0
- package/dist/cjs/userScheme.cjs +9 -12
- package/dist/cjs/userScheme.native.js +11 -16
- package/dist/cjs/userScheme.native.js.map +1 -1
- package/dist/esm/index.js +8 -6
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +8 -6
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +3 -2
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/safeStorage.mjs +14 -0
- package/dist/esm/safeStorage.mjs.map +1 -0
- package/dist/esm/safeStorage.native.js +14 -0
- package/dist/esm/safeStorage.native.js.map +1 -0
- package/dist/esm/safeStorage.test.mjs +50 -0
- package/dist/esm/safeStorage.test.mjs.map +1 -0
- package/dist/esm/safeStorage.test.native.js +64 -0
- package/dist/esm/safeStorage.test.native.js.map +1 -0
- package/dist/esm/userScheme.mjs +9 -12
- package/dist/esm/userScheme.mjs.map +1 -1
- package/dist/esm/userScheme.native.js +11 -16
- package/dist/esm/userScheme.native.js.map +1 -1
- package/package.json +5 -3
- package/src/index.tsx +10 -6
- package/src/safeStorage.test.ts +63 -0
- package/src/safeStorage.ts +20 -0
- package/src/userScheme.ts +13 -20
- package/types/index.d.ts.map +1 -1
- package/types/safeStorage.d.ts +3 -0
- package/types/safeStorage.d.ts.map +1 -0
- package/types/safeStorage.test.d.ts +2 -0
- package/types/safeStorage.test.d.ts.map +1 -0
- package/types/userScheme.d.ts.map +1 -1
package/src/userScheme.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { useIsomorphicLayoutEffect } from '@vxrn/use-isomorphic-layout-effect'
|
|
2
2
|
import { useState, useMemo } from 'react'
|
|
3
3
|
import { Appearance } from 'react-native'
|
|
4
|
+
import { getStorageItem, setStorageItem } from './safeStorage'
|
|
4
5
|
import { getSystemScheme, type Scheme } from './systemScheme'
|
|
5
6
|
|
|
6
7
|
export type SchemeSetting = 'system' | 'light' | 'dark'
|
|
@@ -29,13 +30,11 @@ function notifyListeners() {
|
|
|
29
30
|
}
|
|
30
31
|
|
|
31
32
|
function restoreUnforcedScheme() {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
return
|
|
38
|
-
}
|
|
33
|
+
const stored = getStorageItem(storageKey) as SchemeSetting | null
|
|
34
|
+
if (stored) {
|
|
35
|
+
currentSetting = stored
|
|
36
|
+
currentValue = stored === 'system' ? resolveValue('system') : stored
|
|
37
|
+
return
|
|
39
38
|
}
|
|
40
39
|
|
|
41
40
|
currentSetting = 'system'
|
|
@@ -70,11 +69,9 @@ export function getForceScheme(): Scheme | null {
|
|
|
70
69
|
// eagerly init from localStorage on module load (native only - web uses effect for SSR)
|
|
71
70
|
function getInitialSetting(): SchemeSetting {
|
|
72
71
|
if (process.env.TAMAGUI_TARGET === 'native') {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
return stored
|
|
77
|
-
}
|
|
72
|
+
const stored = getStorageItem(storageKey)
|
|
73
|
+
if (stored === 'light' || stored === 'dark' || stored === 'system') {
|
|
74
|
+
return stored
|
|
78
75
|
}
|
|
79
76
|
}
|
|
80
77
|
// web: always return system for SSR compat
|
|
@@ -177,9 +174,7 @@ function updateScheme(setting: SchemeSetting) {
|
|
|
177
174
|
*/
|
|
178
175
|
export function setUserScheme(setting: SchemeSetting) {
|
|
179
176
|
if (_forceScheme) return
|
|
180
|
-
|
|
181
|
-
localStorage.setItem(storageKey, setting)
|
|
182
|
-
}
|
|
177
|
+
setStorageItem(storageKey, setting)
|
|
183
178
|
updateScheme(setting)
|
|
184
179
|
}
|
|
185
180
|
|
|
@@ -231,11 +226,9 @@ export function useUserScheme(): UserScheme {
|
|
|
231
226
|
useIsomorphicLayoutEffect(() => {
|
|
232
227
|
if (!_forceScheme) {
|
|
233
228
|
// restore from localStorage on mount
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
updateScheme(stored)
|
|
238
|
-
}
|
|
229
|
+
const stored = getStorageItem(storageKey) as SchemeSetting | null
|
|
230
|
+
if (stored) {
|
|
231
|
+
updateScheme(stored)
|
|
239
232
|
}
|
|
240
233
|
startWebListener()
|
|
241
234
|
}
|
package/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAS5C,YAAY,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAC5C,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAG7D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACjE,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,aAAa,GACd,MAAM,cAAc,CAAA;AAIrB,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,YAAoC,EACpC,aAAa,EACb,WAAW,GACZ,EAAE;IACD,QAAQ,EAAE,GAAG,CAAA;IACb,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IACvC,+GAA+G;IAC/G,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,+HAA+H;IAC/H,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,2CAqEA;AAED,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,SAAS,EACT,UAAU,GACX,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;CACnB,2CA2BA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safeStorage.d.ts","sourceRoot":"","sources":["../src/safeStorage.ts"],"names":[],"mappings":"AAOA,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMzD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAI/D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safeStorage.test.d.ts","sourceRoot":"","sources":["../src/safeStorage.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userScheme.d.ts","sourceRoot":"","sources":["../src/userScheme.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"userScheme.d.ts","sourceRoot":"","sources":["../src/userScheme.ts"],"names":[],"mappings":"AAIA,OAAO,EAAmB,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAE7D,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAA;AAEvD,MAAM,MAAM,UAAU,GAAG;IACvB,0DAA0D;IAC1D,OAAO,EAAE,aAAa,CAAA;IACtB,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAA;IACb,gCAAgC;IAChC,GAAG,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAA;CACtC,CAAA;AAED,KAAK,cAAc,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;AA0BrE;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,QAcnD;AAED,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAE9C;AAsGD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,QAInD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI;IAAE,OAAO,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAGzE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,cAAc,cAM1D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,IAAI,UAAU,CAkC1C"}
|