@vxrn/color-scheme 1.2.85 → 1.2.87
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/userScheme.cjs +9 -2
- package/dist/cjs/userScheme.js +8 -1
- package/dist/cjs/userScheme.js.map +1 -1
- package/dist/cjs/userScheme.native.js +16 -7
- package/dist/cjs/userScheme.native.js.map +1 -1
- package/dist/esm/userScheme.js +8 -1
- package/dist/esm/userScheme.js.map +1 -1
- package/dist/esm/userScheme.mjs +9 -2
- package/dist/esm/userScheme.mjs.map +1 -1
- package/dist/esm/userScheme.native.js +16 -7
- package/dist/esm/userScheme.native.js.map +1 -1
- package/package.json +2 -2
- package/src/userScheme.ts +36 -13
- package/types/userScheme.d.ts.map +1 -1
package/dist/cjs/userScheme.cjs
CHANGED
|
@@ -32,8 +32,15 @@ var import_use_isomorphic_layout_effect = require("@vxrn/use-isomorphic-layout-e
|
|
|
32
32
|
import_systemScheme = require("./systemScheme.cjs");
|
|
33
33
|
const listeners = /* @__PURE__ */new Set(),
|
|
34
34
|
storageKey = "vxrn-scheme";
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
function getInitialSetting() {
|
|
36
|
+
return "system";
|
|
37
|
+
}
|
|
38
|
+
function getInitialValue(setting) {
|
|
39
|
+
return "light";
|
|
40
|
+
}
|
|
41
|
+
const initialSetting = getInitialSetting();
|
|
42
|
+
let currentSetting = initialSetting,
|
|
43
|
+
currentValue = getInitialValue(initialSetting),
|
|
37
44
|
isWebListening = !1;
|
|
38
45
|
function startWebListener() {
|
|
39
46
|
if (isWebListening) return;
|
package/dist/cjs/userScheme.js
CHANGED
|
@@ -22,7 +22,14 @@ __export(userScheme_exports, {
|
|
|
22
22
|
module.exports = __toCommonJS(userScheme_exports);
|
|
23
23
|
var import_use_isomorphic_layout_effect = require("@vxrn/use-isomorphic-layout-effect"), import_react = require("react"), import_react_native = require("react-native-web"), import_systemScheme = require("./systemScheme");
|
|
24
24
|
const listeners = /* @__PURE__ */ new Set(), storageKey = "vxrn-scheme";
|
|
25
|
-
|
|
25
|
+
function getInitialSetting() {
|
|
26
|
+
return "system";
|
|
27
|
+
}
|
|
28
|
+
function getInitialValue(setting) {
|
|
29
|
+
return "light";
|
|
30
|
+
}
|
|
31
|
+
const initialSetting = getInitialSetting();
|
|
32
|
+
let currentSetting = initialSetting, currentValue = getInitialValue(initialSetting), isWebListening = !1;
|
|
26
33
|
function startWebListener() {
|
|
27
34
|
if (isWebListening) return;
|
|
28
35
|
isWebListening = !0;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/userScheme.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0CAA0C,+CAC1C,eAAkC,kBAClC,sBAA2B,yBAC3B,sBAA6C;AAe7C,MAAM,YAAY,oBAAI,IAAoB,GACpC,aAAa;
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0CAA0C,+CAC1C,eAAkC,kBAClC,sBAA2B,yBAC3B,sBAA6C;AAe7C,MAAM,YAAY,oBAAI,IAAoB,GACpC,aAAa;AAGnB,SAAS,oBAAmC;AAU1C,SAAO;AACT;AAEA,SAAS,gBAAgB,SAAgC;AAQvD,SAAO;AACT;AACA,MAAM,iBAAiB,kBAAkB;AACzC,IAAI,iBAAgC,gBAChC,eAAuB,gBAAgB,cAAc,GAYrD,iBAAiB;AACrB,SAAS,mBAAmB;AAC1B,MAAI,eAAgB;AACpB,mBAAiB;AAEjB,QAAM,UACJ,OAAO,SAAW,MACd,OAAO,aAAa,8BAA8B,IAClD,MAEA,iBAAiB,MAAM;AAC3B,IAAI,mBAAmB,YACrB,sBAAsB;AAAA,EAE1B;AAEA,iBAAe,GACf,SAAS,mBAAmB,UAAU,cAAc;AACtD;AAEA,SAAS,aAAa,SAAgC;AACpD,SAAI,YAAY,eAIP,qCAAgB,IAElB;AACT;AAGA,SAAS,wBAAwB;AAC/B,QAAM,QAAQ,aAAa,QAAQ;AACnC,EAAI,UAAU,iBACZ,eAAe,OAEf,UAAU,QAAQ,CAAC,MAAM;AACvB,MAAE,gBAAgB,YAAY;AAAA,EAChC,CAAC;AAEL;AAEA,SAAS,aAAa,SAAwB;AAC5C,QAAM,QAAQ,YAAY,WAAW,aAAa,QAAQ,IAAI;AAE9D,GAAI,UAAU,gBAAgB,mBAAmB,aAC/C,iBAAiB,SACjB,eAAe,OAaf,UAAU,QAAQ,CAAC,MAAM;AACvB,MAAE,gBAAgB,YAAY;AAAA,EAChC,CAAC;AAEL;AAQO,SAAS,cAAc,SAAwB;AACpD,EAAI,OAAO,eAAiB,OAC1B,aAAa,QAAQ,YAAY,OAAO,GAE1C,aAAa,OAAO;AACtB;AAOO,SAAS,gBAA2D;AACzE,SAAO,EAAE,SAAS,gBAAgB,OAAO,aAAa;AACxD;AAQO,SAAS,mBAAmB,UAA0B;AAC3D,mBAAU,IAAI,QAAQ,GACtB,SAAS,gBAAgB,YAAY,GAC9B,MAAM;AACX,cAAU,OAAO,QAAQ;AAAA,EAC3B;AACF;AAeO,SAAS,gBAA4B;AAC1C,QAAM,CAAC,OAAO,QAAQ,QAAI,uBAAS,MAAM,cAAc,CAAC;AAExD,4EAA0B,MAAM;AAE9B,QAAI,OAAO,eAAiB,KAAa;AACvC,YAAM,SAAS,aAAa,QAAQ,UAAU;AAC9C,MAAI,UACF,aAAa,MAAM;AAAA,IAEvB;AAEA,UAAM,UAAU,mBAAmB,CAAC,SAAS,UAAU;AACrD,eAAS,EAAE,SAAS,MAAM,CAAC;AAAA,IAC7B,CAAC;AAED,4BAAiB,GAEV;AAAA,EACT,GAAG,CAAC,CAAC,OAEE;AAAA,IACL,OAAO;AAAA,MACL,SAAS,MAAM;AAAA,MACf,OAAO,MAAM;AAAA,MACb,KAAK;AAAA,IACP;AAAA,IACA,CAAC,MAAM,SAAS,MAAM,KAAK;AAAA,EAC7B;AACF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -33,14 +33,23 @@ var import_use_isomorphic_layout_effect = require("@vxrn/use-isomorphic-layout-e
|
|
|
33
33
|
import_react_native = require("react-native"),
|
|
34
34
|
import_systemScheme = require("./systemScheme.native.js"),
|
|
35
35
|
listeners = /* @__PURE__ */new Set(),
|
|
36
|
-
storageKey = "vxrn-scheme"
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
storageKey = "vxrn-scheme";
|
|
37
|
+
function getInitialSetting() {
|
|
38
|
+
if (typeof localStorage < "u") {
|
|
39
|
+
var stored = localStorage.getItem(storageKey);
|
|
40
|
+
if (stored === "light" || stored === "dark" || stored === "system") return stored;
|
|
41
|
+
}
|
|
42
|
+
return "system";
|
|
43
|
+
}
|
|
44
|
+
function getInitialValue(setting) {
|
|
45
|
+
return setting === "system" ? import_react_native.Appearance.getColorScheme() || "light" : setting;
|
|
46
|
+
}
|
|
47
|
+
var initialSetting = getInitialSetting(),
|
|
48
|
+
currentSetting = initialSetting,
|
|
49
|
+
currentValue = getInitialValue(initialSetting);
|
|
39
50
|
import_react_native.Appearance.addChangeListener(function (next) {
|
|
40
51
|
currentSetting === "system" && next.colorScheme && updateValueFromSystem();
|
|
41
52
|
});
|
|
42
|
-
var cur = import_react_native.Appearance.getColorScheme();
|
|
43
|
-
cur && currentSetting === "system" && (currentValue = cur);
|
|
44
53
|
var isWebListening = !1;
|
|
45
54
|
function startWebListener() {
|
|
46
55
|
var _window_matchMedia, _window, _matcher_addEventListener;
|
|
@@ -58,13 +67,13 @@ function resolveValue(setting) {
|
|
|
58
67
|
}
|
|
59
68
|
function updateValueFromSystem() {
|
|
60
69
|
var value = resolveValue("system");
|
|
61
|
-
value !== currentValue && (currentValue = value,
|
|
70
|
+
value !== currentValue && (currentValue = value, listeners.forEach(function (l) {
|
|
62
71
|
l(currentSetting, currentValue);
|
|
63
72
|
}));
|
|
64
73
|
}
|
|
65
74
|
function updateScheme(setting) {
|
|
66
75
|
var value = setting === "system" ? resolveValue("system") : setting;
|
|
67
|
-
(value !== currentValue || currentSetting !== setting) && (currentSetting = setting, currentValue = value, import_react_native.Appearance.setColorScheme(value), listeners.forEach(function (l) {
|
|
76
|
+
(value !== currentValue || currentSetting !== setting) && (currentSetting = setting, currentValue = value, setting !== "system" ? import_react_native.Appearance.setColorScheme(value) : import_react_native.Appearance.setColorScheme(null), listeners.forEach(function (l) {
|
|
68
77
|
l(currentSetting, currentValue);
|
|
69
78
|
}));
|
|
70
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","userScheme_exports","__export","getUserScheme","onUserSchemeChange","setUserScheme","useUserScheme","module","exports","import_use_isomorphic_layout_effect","require","import_react","import_react_native","import_systemScheme","listeners","Set","storageKey","
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","userScheme_exports","__export","getUserScheme","onUserSchemeChange","setUserScheme","useUserScheme","module","exports","import_use_isomorphic_layout_effect","require","import_react","import_react_native","import_systemScheme","listeners","Set","storageKey","getInitialSetting","localStorage","stored","getItem","getInitialValue","setting","Appearance","getColorScheme","initialSetting","currentSetting","currentValue","addChangeListener","next","colorScheme","updateValueFromSystem","isWebListening","startWebListener","_window_matchMedia","_window","_matcher_addEventListener","matcher","window","matchMedia","call","onSystemChange","addEventListener","resolveValue","forEach","l","updateScheme","setColorScheme","setItem","listener","add","delete","state","setState","useState","useIsomorphicLayoutEffect"],"sources":["../../src/userScheme.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/userScheme.js
CHANGED
|
@@ -3,7 +3,14 @@ import { useState, useMemo } from "react";
|
|
|
3
3
|
|
|
4
4
|
import { getSystemScheme } from "./systemScheme";
|
|
5
5
|
const listeners = /* @__PURE__ */ new Set(), storageKey = "vxrn-scheme";
|
|
6
|
-
|
|
6
|
+
function getInitialSetting() {
|
|
7
|
+
return "system";
|
|
8
|
+
}
|
|
9
|
+
function getInitialValue(setting) {
|
|
10
|
+
return "light";
|
|
11
|
+
}
|
|
12
|
+
const initialSetting = getInitialSetting();
|
|
13
|
+
let currentSetting = initialSetting, currentValue = getInitialValue(initialSetting), isWebListening = !1;
|
|
7
14
|
function startWebListener() {
|
|
8
15
|
if (isWebListening) return;
|
|
9
16
|
isWebListening = !0;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/userScheme.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,iCAAiC;AAC1C,SAAS,UAAU,eAAe;AAClC,OAA2B;AAC3B,SAAS,uBAAoC;AAe7C,MAAM,YAAY,oBAAI,IAAoB,GACpC,aAAa;
|
|
4
|
+
"mappings": "AAAA,SAAS,iCAAiC;AAC1C,SAAS,UAAU,eAAe;AAClC,OAA2B;AAC3B,SAAS,uBAAoC;AAe7C,MAAM,YAAY,oBAAI,IAAoB,GACpC,aAAa;AAGnB,SAAS,oBAAmC;AAU1C,SAAO;AACT;AAEA,SAAS,gBAAgB,SAAgC;AAQvD,SAAO;AACT;AACA,MAAM,iBAAiB,kBAAkB;AACzC,IAAI,iBAAgC,gBAChC,eAAuB,gBAAgB,cAAc,GAYrD,iBAAiB;AACrB,SAAS,mBAAmB;AAC1B,MAAI,eAAgB;AACpB,mBAAiB;AAEjB,QAAM,UACJ,OAAO,SAAW,MACd,OAAO,aAAa,8BAA8B,IAClD,MAEA,iBAAiB,MAAM;AAC3B,IAAI,mBAAmB,YACrB,sBAAsB;AAAA,EAE1B;AAEA,iBAAe,GACf,SAAS,mBAAmB,UAAU,cAAc;AACtD;AAEA,SAAS,aAAa,SAAgC;AACpD,SAAI,YAAY,WAIP,gBAAgB,IAElB;AACT;AAGA,SAAS,wBAAwB;AAC/B,QAAM,QAAQ,aAAa,QAAQ;AACnC,EAAI,UAAU,iBACZ,eAAe,OAEf,UAAU,QAAQ,CAAC,MAAM;AACvB,MAAE,gBAAgB,YAAY;AAAA,EAChC,CAAC;AAEL;AAEA,SAAS,aAAa,SAAwB;AAC5C,QAAM,QAAQ,YAAY,WAAW,aAAa,QAAQ,IAAI;AAE9D,GAAI,UAAU,gBAAgB,mBAAmB,aAC/C,iBAAiB,SACjB,eAAe,OAaf,UAAU,QAAQ,CAAC,MAAM;AACvB,MAAE,gBAAgB,YAAY;AAAA,EAChC,CAAC;AAEL;AAQO,SAAS,cAAc,SAAwB;AACpD,EAAI,OAAO,eAAiB,OAC1B,aAAa,QAAQ,YAAY,OAAO,GAE1C,aAAa,OAAO;AACtB;AAOO,SAAS,gBAA2D;AACzE,SAAO,EAAE,SAAS,gBAAgB,OAAO,aAAa;AACxD;AAQO,SAAS,mBAAmB,UAA0B;AAC3D,mBAAU,IAAI,QAAQ,GACtB,SAAS,gBAAgB,YAAY,GAC9B,MAAM;AACX,cAAU,OAAO,QAAQ;AAAA,EAC3B;AACF;AAeO,SAAS,gBAA4B;AAC1C,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,MAAM,cAAc,CAAC;AAExD,mCAA0B,MAAM;AAE9B,QAAI,OAAO,eAAiB,KAAa;AACvC,YAAM,SAAS,aAAa,QAAQ,UAAU;AAC9C,MAAI,UACF,aAAa,MAAM;AAAA,IAEvB;AAEA,UAAM,UAAU,mBAAmB,CAAC,SAAS,UAAU;AACrD,eAAS,EAAE,SAAS,MAAM,CAAC;AAAA,IAC7B,CAAC;AAED,4BAAiB,GAEV;AAAA,EACT,GAAG,CAAC,CAAC,GAEE;AAAA,IACL,OAAO;AAAA,MACL,SAAS,MAAM;AAAA,MACf,OAAO,MAAM;AAAA,MACb,KAAK;AAAA,IACP;AAAA,IACA,CAAC,MAAM,SAAS,MAAM,KAAK;AAAA,EAC7B;AACF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/esm/userScheme.mjs
CHANGED
|
@@ -3,8 +3,15 @@ import { useState, useMemo } from "react";
|
|
|
3
3
|
import { getSystemScheme } from "./systemScheme.mjs";
|
|
4
4
|
const listeners = /* @__PURE__ */new Set(),
|
|
5
5
|
storageKey = "vxrn-scheme";
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
function getInitialSetting() {
|
|
7
|
+
return "system";
|
|
8
|
+
}
|
|
9
|
+
function getInitialValue(setting) {
|
|
10
|
+
return "light";
|
|
11
|
+
}
|
|
12
|
+
const initialSetting = getInitialSetting();
|
|
13
|
+
let currentSetting = initialSetting,
|
|
14
|
+
currentValue = getInitialValue(initialSetting),
|
|
8
15
|
isWebListening = !1;
|
|
9
16
|
function startWebListener() {
|
|
10
17
|
if (isWebListening) return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useIsomorphicLayoutEffect","useState","useMemo","getSystemScheme","listeners","Set","storageKey","currentSetting","currentValue","isWebListening","startWebListener","matcher","window","matchMedia","onSystemChange","updateValueFromSystem","addEventListener","resolveValue","
|
|
1
|
+
{"version":3,"names":["useIsomorphicLayoutEffect","useState","useMemo","getSystemScheme","listeners","Set","storageKey","getInitialSetting","getInitialValue","setting","initialSetting","currentSetting","currentValue","isWebListening","startWebListener","matcher","window","matchMedia","onSystemChange","updateValueFromSystem","addEventListener","resolveValue","value","forEach","l","updateScheme","setUserScheme","localStorage","setItem","getUserScheme","onUserSchemeChange","listener","add","delete","useUserScheme","state","setState","stored","getItem","dispose","set"],"sources":["../../src/userScheme.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -3,14 +3,23 @@ import { useState, useMemo } from "react";
|
|
|
3
3
|
import { Appearance } from "react-native";
|
|
4
4
|
import { getSystemScheme } from "./systemScheme.native.js";
|
|
5
5
|
var listeners = /* @__PURE__ */new Set(),
|
|
6
|
-
storageKey = "vxrn-scheme"
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
storageKey = "vxrn-scheme";
|
|
7
|
+
function getInitialSetting() {
|
|
8
|
+
if (typeof localStorage < "u") {
|
|
9
|
+
var stored = localStorage.getItem(storageKey);
|
|
10
|
+
if (stored === "light" || stored === "dark" || stored === "system") return stored;
|
|
11
|
+
}
|
|
12
|
+
return "system";
|
|
13
|
+
}
|
|
14
|
+
function getInitialValue(setting) {
|
|
15
|
+
return setting === "system" ? Appearance.getColorScheme() || "light" : setting;
|
|
16
|
+
}
|
|
17
|
+
var initialSetting = getInitialSetting(),
|
|
18
|
+
currentSetting = initialSetting,
|
|
19
|
+
currentValue = getInitialValue(initialSetting);
|
|
9
20
|
Appearance.addChangeListener(function (next) {
|
|
10
21
|
currentSetting === "system" && next.colorScheme && updateValueFromSystem();
|
|
11
22
|
});
|
|
12
|
-
var cur = Appearance.getColorScheme();
|
|
13
|
-
cur && currentSetting === "system" && (currentValue = cur);
|
|
14
23
|
var isWebListening = !1;
|
|
15
24
|
function startWebListener() {
|
|
16
25
|
var _window_matchMedia, _window, _matcher_addEventListener;
|
|
@@ -28,13 +37,13 @@ function resolveValue(setting) {
|
|
|
28
37
|
}
|
|
29
38
|
function updateValueFromSystem() {
|
|
30
39
|
var value = resolveValue("system");
|
|
31
|
-
value !== currentValue && (currentValue = value,
|
|
40
|
+
value !== currentValue && (currentValue = value, listeners.forEach(function (l) {
|
|
32
41
|
l(currentSetting, currentValue);
|
|
33
42
|
}));
|
|
34
43
|
}
|
|
35
44
|
function updateScheme(setting) {
|
|
36
45
|
var value = setting === "system" ? resolveValue("system") : setting;
|
|
37
|
-
(value !== currentValue || currentSetting !== setting) && (currentSetting = setting, currentValue = value, Appearance.setColorScheme(value), listeners.forEach(function (l) {
|
|
46
|
+
(value !== currentValue || currentSetting !== setting) && (currentSetting = setting, currentValue = value, setting !== "system" ? Appearance.setColorScheme(value) : Appearance.setColorScheme(null), listeners.forEach(function (l) {
|
|
38
47
|
l(currentSetting, currentValue);
|
|
39
48
|
}));
|
|
40
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useIsomorphicLayoutEffect","useState","useMemo","Appearance","getSystemScheme","listeners","Set","storageKey","currentSetting","currentValue","addChangeListener","next","colorScheme","updateValueFromSystem","
|
|
1
|
+
{"version":3,"names":["useIsomorphicLayoutEffect","useState","useMemo","Appearance","getSystemScheme","listeners","Set","storageKey","getInitialSetting","localStorage","stored","getItem","getInitialValue","setting","getColorScheme","initialSetting","currentSetting","currentValue","addChangeListener","next","colorScheme","updateValueFromSystem","isWebListening","startWebListener","_window_matchMedia","_window","_matcher_addEventListener","matcher","window","matchMedia","call","onSystemChange","addEventListener","resolveValue","value","forEach","l","updateScheme","setColorScheme","setUserScheme","setItem","getUserScheme","onUserSchemeChange","listener","add","delete","useUserScheme","state","setState"],"sources":["../../src/userScheme.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vxrn/color-scheme",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.87",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"exports": {
|
|
6
6
|
"./package.json": "./package.json",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"watch": "tamagui-build --watch"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@vxrn/use-isomorphic-layout-effect": "1.2.
|
|
36
|
+
"@vxrn/use-isomorphic-layout-effect": "1.2.87"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@tamagui/build": "^1.144.3",
|
package/src/userScheme.ts
CHANGED
|
@@ -19,8 +19,33 @@ type SchemeListener = (setting: SchemeSetting, value: Scheme) => void
|
|
|
19
19
|
const listeners = new Set<SchemeListener>()
|
|
20
20
|
const storageKey = 'vxrn-scheme'
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
// eagerly init from localStorage on module load (native only - web uses effect for SSR)
|
|
23
|
+
function getInitialSetting(): SchemeSetting {
|
|
24
|
+
if (process.env.TAMAGUI_TARGET === 'native') {
|
|
25
|
+
if (typeof localStorage !== 'undefined') {
|
|
26
|
+
const stored = localStorage.getItem(storageKey)
|
|
27
|
+
if (stored === 'light' || stored === 'dark' || stored === 'system') {
|
|
28
|
+
return stored
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// web: always return system for SSR compat
|
|
33
|
+
return 'system'
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function getInitialValue(setting: SchemeSetting): Scheme {
|
|
37
|
+
if (process.env.TAMAGUI_TARGET === 'native') {
|
|
38
|
+
if (setting === 'system') {
|
|
39
|
+
return Appearance.getColorScheme() || 'light'
|
|
40
|
+
}
|
|
41
|
+
return setting
|
|
42
|
+
}
|
|
43
|
+
// web: always return 'light' for SSR compatibility
|
|
44
|
+
return 'light'
|
|
45
|
+
}
|
|
46
|
+
const initialSetting = getInitialSetting()
|
|
47
|
+
let currentSetting: SchemeSetting = initialSetting
|
|
48
|
+
let currentValue: Scheme = getInitialValue(initialSetting)
|
|
24
49
|
|
|
25
50
|
// native: set up listener at module level
|
|
26
51
|
if (process.env.TAMAGUI_TARGET === 'native') {
|
|
@@ -29,11 +54,6 @@ if (process.env.TAMAGUI_TARGET === 'native') {
|
|
|
29
54
|
updateValueFromSystem()
|
|
30
55
|
}
|
|
31
56
|
})
|
|
32
|
-
|
|
33
|
-
const cur = Appearance.getColorScheme()
|
|
34
|
-
if (cur && currentSetting === 'system') {
|
|
35
|
-
currentValue = cur
|
|
36
|
-
}
|
|
37
57
|
}
|
|
38
58
|
|
|
39
59
|
// web: lazy listener setup for SSR safety
|
|
@@ -72,11 +92,7 @@ function updateValueFromSystem() {
|
|
|
72
92
|
const value = resolveValue('system')
|
|
73
93
|
if (value !== currentValue) {
|
|
74
94
|
currentValue = value
|
|
75
|
-
|
|
76
|
-
if (process.env.TAMAGUI_TARGET === 'native') {
|
|
77
|
-
Appearance.setColorScheme(value)
|
|
78
|
-
}
|
|
79
|
-
|
|
95
|
+
// don't call Appearance.setColorScheme when following system - it breaks the listener
|
|
80
96
|
listeners.forEach((l) => {
|
|
81
97
|
l(currentSetting, currentValue)
|
|
82
98
|
})
|
|
@@ -91,7 +107,14 @@ function updateScheme(setting: SchemeSetting) {
|
|
|
91
107
|
currentValue = value
|
|
92
108
|
|
|
93
109
|
if (process.env.TAMAGUI_TARGET === 'native') {
|
|
94
|
-
|
|
110
|
+
// only call setColorScheme for explicit light/dark
|
|
111
|
+
// calling it breaks the Appearance.addChangeListener for system changes
|
|
112
|
+
if (setting !== 'system') {
|
|
113
|
+
Appearance.setColorScheme(value)
|
|
114
|
+
} else {
|
|
115
|
+
// reset to null to re-enable system tracking
|
|
116
|
+
Appearance.setColorScheme(null)
|
|
117
|
+
}
|
|
95
118
|
}
|
|
96
119
|
|
|
97
120
|
listeners.forEach((l) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userScheme.d.ts","sourceRoot":"","sources":["../src/userScheme.ts"],"names":[],"mappings":"AAGA,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;
|
|
1
|
+
{"version":3,"file":"userScheme.d.ts","sourceRoot":"","sources":["../src/userScheme.ts"],"names":[],"mappings":"AAGA,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;AA6GrE;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,QAKnD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI;IAAE,OAAO,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAEzE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,cAAc,cAM1D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,IAAI,UAAU,CA6B1C"}
|