@tamagui/web 1.101.1 → 1.101.3
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/createComponent.js +3 -3
- package/dist/cjs/createComponent.js.map +1 -1
- package/dist/cjs/createComponent.native.js +3 -3
- package/dist/cjs/createComponent.native.js.map +2 -2
- package/dist/cjs/helpers/getSplitStyles.js +1 -1
- package/dist/cjs/helpers/getSplitStyles.js.map +1 -1
- package/dist/cjs/helpers/getSplitStyles.native.js +1 -1
- package/dist/cjs/helpers/getSplitStyles.native.js.map +2 -2
- package/dist/cjs/hooks/useDidHydrateOnce.js +2 -10
- package/dist/cjs/hooks/useDidHydrateOnce.js.map +1 -1
- package/dist/cjs/hooks/useDidHydrateOnce.native.js +2 -2
- package/dist/cjs/hooks/useDidHydrateOnce.native.js.map +2 -2
- package/dist/cjs/hooks/useMedia.js +37 -27
- package/dist/cjs/hooks/useMedia.js.map +2 -2
- package/dist/cjs/hooks/useMedia.native.js +36 -47
- package/dist/cjs/hooks/useMedia.native.js.map +2 -2
- package/dist/esm/createComponent.js +3 -3
- package/dist/esm/createComponent.js.map +1 -1
- package/dist/esm/createComponent.mjs +5 -5
- package/dist/esm/createComponent.native.js +3 -3
- package/dist/esm/createComponent.native.js.map +2 -2
- package/dist/esm/helpers/getSplitStyles.js +1 -1
- package/dist/esm/helpers/getSplitStyles.js.map +1 -1
- package/dist/esm/helpers/getSplitStyles.mjs +1 -1
- package/dist/esm/helpers/getSplitStyles.native.js +1 -1
- package/dist/esm/helpers/getSplitStyles.native.js.map +2 -2
- package/dist/esm/hooks/useDidHydrateOnce.js +3 -11
- package/dist/esm/hooks/useDidHydrateOnce.js.map +1 -1
- package/dist/esm/hooks/useDidHydrateOnce.mjs +3 -11
- package/dist/esm/hooks/useDidHydrateOnce.native.js +1 -2
- package/dist/esm/hooks/useDidHydrateOnce.native.js.map +2 -2
- package/dist/esm/hooks/useMedia.js +37 -28
- package/dist/esm/hooks/useMedia.js.map +2 -2
- package/dist/esm/hooks/useMedia.mjs +34 -37
- package/dist/esm/hooks/useMedia.native.js +36 -48
- package/dist/esm/hooks/useMedia.native.js.map +2 -2
- package/package.json +11 -11
- package/src/createComponent.tsx +7 -5
- package/src/helpers/getSplitStyles.tsx +4 -4
- package/src/hooks/useDidHydrateOnce.tsx +16 -21
- package/src/hooks/useMedia.tsx +70 -55
- package/src/types.tsx +1 -1
- package/types/createComponent.d.ts.map +1 -1
- package/types/hooks/useDidHydrateOnce.d.ts.map +1 -1
- package/types/hooks/useMedia.d.ts +4 -4
- package/types/hooks/useMedia.d.ts.map +1 -1
- package/types/types.d.ts +1 -1
- package/types/types.d.ts.map +1 -1
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { isServer, isWeb, useIsomorphicLayoutEffect } from "@tamagui/constants";
|
|
2
|
-
import { useRef, useState } from "react";
|
|
2
|
+
import { useRef, useState, useSyncExternalStore } from "react";
|
|
3
3
|
import { getConfig } from "../config";
|
|
4
4
|
import { matchMedia } from "../helpers/matchMedia";
|
|
5
5
|
import { pseudoDescriptors } from "../helpers/pseudoDescriptors";
|
|
6
|
-
import { useDidHydrateOnce } from "./useDidHydrateOnce";
|
|
7
6
|
import { getDisableSSR } from "./useDisableSSR";
|
|
8
7
|
let mediaState = (
|
|
9
8
|
// development only safeguard
|
|
@@ -51,7 +50,7 @@ function unlisten() {
|
|
|
51
50
|
let setupVersion = -1;
|
|
52
51
|
function setupMediaListeners() {
|
|
53
52
|
if (!(isWeb && isServer) && setupVersion !== mediaVersion) {
|
|
54
|
-
setupVersion = mediaVersion,
|
|
53
|
+
setupVersion = mediaVersion, unlisten();
|
|
55
54
|
for (const key in mediaQueryConfig) {
|
|
56
55
|
let update = function() {
|
|
57
56
|
const next = !!getMatch().matches;
|
|
@@ -80,35 +79,45 @@ function setMediaShouldUpdate(ref, props) {
|
|
|
80
79
|
...props
|
|
81
80
|
});
|
|
82
81
|
}
|
|
83
|
-
function
|
|
84
|
-
return
|
|
82
|
+
function subscribe(subscriber) {
|
|
83
|
+
return listeners.add(subscriber), () => {
|
|
84
|
+
listeners.delete(subscriber);
|
|
85
|
+
};
|
|
85
86
|
}
|
|
86
|
-
function useMedia(uidIn, componentContext, debug
|
|
87
|
-
const uid = uidIn ?? useRef(),
|
|
87
|
+
function useMedia(uidIn, componentContext, debug) {
|
|
88
|
+
const uid = uidIn ?? useRef(), disableSSR = getDisableSSR(componentContext), initialState = (disableSSR || !isWeb ? mediaState : initState) || {};
|
|
88
89
|
let componentState = States.get(uid);
|
|
89
90
|
componentState || (componentState = { prev: initialState }, States.set(uid, componentState));
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
91
|
+
const getSnapshot = () => {
|
|
92
|
+
if (!componentState)
|
|
93
|
+
return initialState;
|
|
94
|
+
const { enabled, keys, prev = initialState } = componentState;
|
|
95
|
+
if (enabled === !1)
|
|
96
|
+
return prev;
|
|
97
|
+
const testKeys = keys ?? (enabled && keys) ?? null;
|
|
98
|
+
return !testKeys || Object.keys(testKeys).every((key) => mediaState[key] === prev[key]) ? prev : (componentState.prev = mediaState, mediaState);
|
|
99
|
+
};
|
|
100
|
+
let state;
|
|
101
|
+
if (process.env.TAMAGUI_SYNC_MEDIA_QUERY)
|
|
102
|
+
state = useSyncExternalStore(
|
|
103
|
+
subscribe,
|
|
104
|
+
getSnapshot,
|
|
105
|
+
() => initialState
|
|
106
|
+
);
|
|
107
|
+
else {
|
|
108
|
+
const [_state, setState] = useState(initialState);
|
|
109
|
+
state = _state, useIsomorphicLayoutEffect(() => {
|
|
110
|
+
function update() {
|
|
111
|
+
setState(getSnapshot);
|
|
112
|
+
}
|
|
113
|
+
return update(), disableSSR || Promise.resolve().then(() => {
|
|
114
|
+
update();
|
|
115
|
+
}), subscribe(update);
|
|
116
|
+
}, []);
|
|
117
|
+
}
|
|
118
|
+
return new Proxy(state, {
|
|
110
119
|
get(_, key) {
|
|
111
|
-
return typeof key == "string" && (componentState.
|
|
120
|
+
return typeof key == "string" && (componentState.keys ||= {}, componentState.keys[key] = !0, process.env.NODE_ENV === "development" && debug && console.info("useMedia() TOUCH", key)), Reflect.get(state, key);
|
|
112
121
|
}
|
|
113
122
|
});
|
|
114
123
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/hooks/useMedia.tsx"],
|
|
4
|
-
"mappings": "AAAA,SAAS,UAAU,OAAO,iCAAiC;AAC3D,SAAS,QAAQ,
|
|
5
|
-
"names": [
|
|
4
|
+
"mappings": "AAAA,SAAS,UAAU,OAAO,iCAAiC;AAC3D,SAAS,QAAQ,UAAU,4BAA4B;AAEvD,SAAS,iBAAiB;AAC1B,SAAS,kBAAkB;AAC3B,SAAS,yBAAyB;AAWlC,SAAS,qBAAqB;AAEvB,IAAI;AAAA;AAAA,EAET,QAAQ,IAAI,aAAa,gBACrB,IAAI;AAAA,IACF,CAAC;AAAA,IACD;AAAA,MACE,IAAI,QAAQ,KAAK;AACf,YACE,OAAO,OAAQ,YACf,IAAI,CAAC,MAAM;AAAA,QAEX,IAAI,CAAC,MAAM;AAEX,gBAAM,IAAI,MAAM,yCAAyC,GAAG,EAAE;AAEhE,eAAO,QAAQ,IAAI,QAAQ,GAAG;AAAA,MAChC;AAAA,IACF;AAAA,EACF,IACC,CAAC;AAAA;AAED,MAAM,mBAAiC,CAAC,GAElC,WAAW,MAAM,YAEjB,YAAY,oBAAI,IAAY,GAEnC,gBAAgB,6BAET,aAAa,CAAC,QAA6B;AACtD,MAAI,UAAU,IAAI,GAAG,EAAG,QAAO;AAC/B,MAAI,IAAI,CAAC,MAAM,KAAK;AAClB,UAAM,QAAQ,IAAI,MAAM,aAAa;AACrC,QAAI,MAAO,QAAO,MAAM,CAAC;AAAA,EAC3B;AACA,SAAO;AACT;AAGA,IAAI;AAGJ,MAAM,yBAAyB,OAAO,KAAK,iBAAiB,EAAE;AAE9D,IAAI;AAEG,MAAM,wBAAwB,CAAC,QAAgB;AACpD,MAAI,QAAQ,IAAI,aAAa,iBAAiB,IAAI,CAAC,MAAM;AACvD,UAAM,IAAI,MAAM,eAAe;AAIjC,SADa,UAAU,EACd,SAAS,iBACT,yBAMF,iBAAiB,QAAQ,GAAG,IAAI;AACzC,GAEM,UAAU,oBAAI,IAAc;AAElC,IAAI,eAAe;AAEZ,MAAM,iBAAiB,CAAC,WAAkC;AAC/D,QAAM,EAAE,OAAO,wBAAwB,IAAI;AAC3C,MAAK,OACL;AAAA;AACA,eAAW,OAAO;AAChB,iBAAW,GAAG,IAAI,0BAA0B,GAAG,KAAK,IACpD,UAAU,IAAI,IAAI,GAAG,EAAE;AAEzB,WAAO,OAAO,kBAAkB,KAAK,GACrC,YAAY,EAAE,GAAG,WAAW,GAC5B,mBAAmB,OAAO,KAAK,KAAK,GAEhC,OAAO,aACT,oBAAoB,IAEpB,mBAAmB;AAAA;AAEvB;AAEA,SAAS,WAAW;AAClB,UAAQ,QAAQ,CAAC,OAAO,GAAG,CAAC,GAC5B,QAAQ,MAAM;AAChB;AAOA,IAAI,eAAe;AACZ,SAAS,sBAAsB;AACpC,MAAI,WAAS,aAGT,iBAAiB,cACrB;AAAA,mBAAe,cAGf,SAAS;AAET,eAAW,OAAO,kBAAkB;AAgBlC,UAAS,SAAT,WAAkB;AAChB,cAAM,OAAO,CAAC,CAAC,SAAS,EAAE;AAC1B,QAAI,SAAS,WAAW,GAAG,MAC3B,aAAa,EAAE,GAAG,YAAY,CAAC,GAAG,GAAG,KAAK,GAC1C,mBAAmB;AAAA,MACrB;AApBA,YAAM,MAAM,oBAAoB,iBAAiB,GAAG,GAAG,GAAG,GACpD,WAAW,MAAM,WAAW,GAAG,GAC/B,QAAQ,SAAS;AACvB,UAAI,CAAC;AACH,cAAM,IAAI,MAAM,uBAAa;AAI/B,YAAM,YAAY,MAAM,GACxB,QAAQ,IAAI,MAAM;AAChB,cAAM,eAAe,MAAM;AAAA,MAC7B,CAAC,GAED,OAAO;AAAA,IAQT;AAAA;AACF;AAEA,MAAM,YAAY,oBAAI,IAAS;AAC/B,IAAI,WAAW,IACX,eAAe;AACnB,SAAS,qBAAqB;AAE5B,EAAI,YAAY,iBAAiB,iBAGjC,eAAe,cACf,WAAW,IACX,QAAQ,QAAQ,EAAE,KAAK,MAAM;AAC3B,eAAW,IACX,UAAU,QAAQ,CAAC,OAAO,GAAG,UAAU,CAAC;AAAA,EAC1C,CAAC;AACH;AAYA,MAAM,SAAS,oBAAI,QAAyB;AAErC,SAAS,qBAAqB,KAAU,OAAmB;AAChE,SAAO,OAAO,IAAI,KAAK;AAAA,IACrB,GAAI,OAAO,IAAI,GAAG;AAAA,IAClB,GAAG;AAAA,EACL,CAAC;AACH;AAOA,SAAS,UAAU,YAAiB;AAClC,mBAAU,IAAI,UAAU,GACjB,MAAM;AACX,cAAU,OAAO,UAAU;AAAA,EAC7B;AACF;AAEO,SAAS,SACd,OACA,kBACA,OACe;AACf,QAAM,MAAM,SAAS,OAAO,GAEtB,aAAa,cAAc,gBAAgB,GAC3C,gBAAgB,cAAc,CAAC,QAAQ,aAAa,cAAc,CAAC;AAEzE,MAAI,iBAAiB,OAAO,IAAI,GAAG;AACnC,EAAK,mBACH,iBAAiB,EAAE,MAAM,aAAa,GACtC,OAAO,IAAI,KAAK,cAAc;AAGhC,QAAM,cAAc,MAAM;AACxB,QAAI,CAAC;AACH,aAAO;AAGT,UAAM,EAAE,SAAS,MAAM,OAAO,aAAa,IAAI;AAE/C,QAAI,YAAY;AACd,aAAO;AAGT,UAAM,WAAW,SAAS,WAAW,SAAS;AAI9C,WAFE,CAAC,YAAY,OAAO,KAAK,QAAQ,EAAE,MAAM,CAAC,QAAQ,WAAW,GAAG,MAAM,KAAK,GAAG,CAAC,IAGxE,QAGT,eAAe,OAAO,YACf;AAAA,EACT;AAEA,MAAI;AAEJ,MAAI,QAAQ,IAAI;AACd,YAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA,MAAM;AAAA,IACR;AAAA,OACK;AACL,UAAM,CAAC,QAAQ,QAAQ,IAAI,SAAS,YAAY;AAChD,YAAQ,QAER,0BAA0B,MAAM;AAC9B,eAAS,SAAS;AAChB,iBAAS,WAAW;AAAA,MACtB;AAEA,oBAAO,GAGF,cACH,QAAQ,QAAQ,EAAE,KAAK,MAAM;AAC3B,eAAO;AAAA,MACT,CAAC,GAGI,UAAU,MAAM;AAAA,IACzB,GAAG,CAAC,CAAC;AAAA,EACP;AAEA,SAAO,IAAI,MAAM,OAAO;AAAA,IACtB,IAAI,GAAG,KAAK;AACV,aAAI,OAAO,OAAQ,aACjB,eAAe,SAAS,CAAC,GACzB,eAAe,KAAK,GAAG,IAAI,IACvB,QAAQ,IAAI,aAAa,iBAAiB,SAC5C,QAAQ,KAAK,oBAAoB,GAAG,IAGjC,QAAQ,IAAI,OAAO,GAAG;AAAA,IAC/B;AAAA,EACF,CAAC;AACH;AAEO,MAAM,oCAAoC,CAC/C,UACA,KACA,iBACA,gBACG;AACH,QAAM,OAAO,UAAU,GACjB,aACJ,eAAe,CAAC,KAAK,SAAS,iBAC1B,sBAAsB,QAAQ,IAC9B;AACN,SAAO,CAAC,gBAAgB,GAAG,KAAK,aAAa,gBAAgB,GAAG,IAAI,aAAa;AACnF;AAEA,SAAS,cAAc,KAAa;AAClC,SAAO,IAAI,QAAQ,UAAU,CAAC,MAAM,IAAI,EAAE,YAAY,CAAC,EAAE,EAAE,YAAY;AACzE;AAEA,MAAM,QAAQ,oBAAI,QAAqB,GACjC,wBAAgD,CAAC;AAEhD,SAAS,oBAAoB,OAAkC,KAAc;AAClF,MAAI,OAAO,SAAU;AACnB,WAAO;AAET,MAAI,MAAM,IAAI,KAAK;AACjB,WAAO,MAAM,IAAI,KAAK;AAExB,QAAM,MAAM,OAAO,QAAQ,KAAK,EAC7B,IAAI,CAAC,CAAC,SAAS,KAAK,OACnB,UAAU,cAAc,OAAO,GAC3B,OAAO,SAAU,WACZ,IAAI,OAAO,KAAK,KAAK,OAE1B,OAAO,SAAU,YAAY,kBAAkB,KAAK,OAAO,MAC7D,QAAQ,GAAG,KAAK,OAEX,IAAI,OAAO,KAAK,KAAK,KAC7B,EACA,KAAK,OAAO;AACf,SAAI,QACF,sBAAsB,GAAG,IAAI,MAE/B,MAAM,IAAI,OAAO,GAAG,GACb;AACT;AAEO,SAAS,gBAAgB,KAAa;AAC3C,SAAO,sBAAsB,GAAG,KAAK,oBAAoB,iBAAiB,GAAG,GAAG,GAAG;AACrF;AAEO,SAAS,cACd,KACA,YACA;AACA,QAAM,eAAe,iBAAiB,GAAG;AASzC,SARe,OAAO,KAAK,YAAY,EAAE,MAAM,CAAC,UAAU;AACxD,UAAM,cAAc,CAAC,aAAa,KAAK,GACjC,QAAQ,MAAM,WAAW,KAAK,GAC9B,UAAU,MAAM,SAAS,OAAO,GAChC,WAAW,WAAW,UAAU,UAAU,QAAQ;AAExD,WAAO,QAAQ,WAAW,cAAc,WAAW;AAAA,EACrD,CAAC;AAEH;",
|
|
5
|
+
"names": []
|
|
6
6
|
}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { isServer, isWeb, useIsomorphicLayoutEffect } from "@tamagui/constants";
|
|
2
|
-
import { useRef, useState } from "react";
|
|
2
|
+
import { useRef, useState, useSyncExternalStore } from "react";
|
|
3
3
|
import { getConfig } from "../config.mjs";
|
|
4
4
|
import { matchMedia } from "../helpers/matchMedia.mjs";
|
|
5
5
|
import { pseudoDescriptors } from "../helpers/pseudoDescriptors.mjs";
|
|
6
|
-
import { useDidHydrateOnce } from "./useDidHydrateOnce.mjs";
|
|
7
6
|
import { getDisableSSR } from "./useDisableSSR.mjs";
|
|
8
7
|
let mediaState =
|
|
9
8
|
// development only safeguard
|
|
@@ -55,7 +54,7 @@ function unlisten() {
|
|
|
55
54
|
let setupVersion = -1;
|
|
56
55
|
function setupMediaListeners() {
|
|
57
56
|
if (!(isWeb && isServer) && setupVersion !== mediaVersion) {
|
|
58
|
-
setupVersion = mediaVersion,
|
|
57
|
+
setupVersion = mediaVersion, unlisten();
|
|
59
58
|
for (const key in mediaQueryConfig) {
|
|
60
59
|
let update = function () {
|
|
61
60
|
const next = !!getMatch().matches;
|
|
@@ -89,47 +88,45 @@ function setMediaShouldUpdate(ref, props) {
|
|
|
89
88
|
...props
|
|
90
89
|
});
|
|
91
90
|
}
|
|
92
|
-
function
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
}) {
|
|
97
|
-
return enabled === !1 || !touched || touched.every(key => mediaState[key] === prev[key]) ? prev : mediaState;
|
|
91
|
+
function subscribe(subscriber) {
|
|
92
|
+
return listeners.add(subscriber), () => {
|
|
93
|
+
listeners.delete(subscriber);
|
|
94
|
+
};
|
|
98
95
|
}
|
|
99
|
-
function useMedia(uidIn, componentContext, debug
|
|
96
|
+
function useMedia(uidIn, componentContext, debug) {
|
|
100
97
|
const uid = uidIn ?? useRef(),
|
|
101
|
-
|
|
102
|
-
initialState =
|
|
98
|
+
disableSSR = getDisableSSR(componentContext),
|
|
99
|
+
initialState = (disableSSR || !isWeb ? mediaState : initState) || {};
|
|
103
100
|
let componentState = States.get(uid);
|
|
104
101
|
componentState || (componentState = {
|
|
105
102
|
prev: initialState
|
|
106
103
|
}, States.set(uid, componentState));
|
|
107
|
-
const
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
104
|
+
const getSnapshot = () => {
|
|
105
|
+
if (!componentState) return initialState;
|
|
106
|
+
const {
|
|
107
|
+
enabled,
|
|
108
|
+
keys,
|
|
109
|
+
prev = initialState
|
|
110
|
+
} = componentState;
|
|
111
|
+
if (enabled === !1) return prev;
|
|
112
|
+
const testKeys = keys ?? (enabled && keys) ?? null;
|
|
113
|
+
return !testKeys || Object.keys(testKeys).every(key => mediaState[key] === prev[key]) ? prev : (componentState.prev = mediaState, mediaState);
|
|
114
|
+
};
|
|
115
|
+
let state;
|
|
116
|
+
if (process.env.TAMAGUI_SYNC_MEDIA_QUERY) state = useSyncExternalStore(subscribe, getSnapshot, () => initialState);else {
|
|
117
|
+
const [_state, setState] = useState(initialState);
|
|
118
|
+
state = _state, useIsomorphicLayoutEffect(() => {
|
|
119
|
+
function update() {
|
|
120
|
+
setState(getSnapshot);
|
|
121
|
+
}
|
|
122
|
+
return update(), disableSSR || Promise.resolve().then(() => {
|
|
123
|
+
update();
|
|
124
|
+
}), subscribe(update);
|
|
125
|
+
}, []);
|
|
126
|
+
}
|
|
127
|
+
return new Proxy(state, {
|
|
131
128
|
get(_, key) {
|
|
132
|
-
return typeof key == "string" && (componentState.
|
|
129
|
+
return typeof key == "string" && (componentState.keys ||= {}, componentState.keys[key] = !0, process.env.NODE_ENV === "development" && debug && console.info("useMedia() TOUCH", key)), Reflect.get(state, key);
|
|
133
130
|
}
|
|
134
131
|
});
|
|
135
132
|
}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { isServer, isWeb, useIsomorphicLayoutEffect } from "@tamagui/constants";
|
|
2
|
-
import { useRef, useState } from "react";
|
|
2
|
+
import { useRef, useState, useSyncExternalStore } from "react";
|
|
3
3
|
import { getConfig } from "../config";
|
|
4
4
|
import { matchMedia } from "../helpers/matchMedia";
|
|
5
5
|
import { pseudoDescriptors } from "../helpers/pseudoDescriptors";
|
|
6
|
-
import { useDidHydrateOnce } from "./useDidHydrateOnce";
|
|
7
6
|
import { getDisableSSR } from "./useDisableSSR";
|
|
8
7
|
function _array_like_to_array(arr, len) {
|
|
9
8
|
(len == null || len > arr.length) && (len = arr.length);
|
|
@@ -13,9 +12,6 @@ function _array_like_to_array(arr, len) {
|
|
|
13
12
|
function _array_with_holes(arr) {
|
|
14
13
|
if (Array.isArray(arr)) return arr;
|
|
15
14
|
}
|
|
16
|
-
function _array_without_holes(arr) {
|
|
17
|
-
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
18
|
-
}
|
|
19
15
|
function _define_property(obj, key, value) {
|
|
20
16
|
return key in obj ? Object.defineProperty(obj, key, {
|
|
21
17
|
value,
|
|
@@ -24,9 +20,6 @@ function _define_property(obj, key, value) {
|
|
|
24
20
|
writable: !0
|
|
25
21
|
}) : obj[key] = value, obj;
|
|
26
22
|
}
|
|
27
|
-
function _iterable_to_array(iter) {
|
|
28
|
-
if (typeof Symbol < "u" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
29
|
-
}
|
|
30
23
|
function _iterable_to_array_limit(arr, i) {
|
|
31
24
|
var _i = arr == null ? null : typeof Symbol < "u" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
32
25
|
if (_i != null) {
|
|
@@ -49,9 +42,6 @@ function _iterable_to_array_limit(arr, i) {
|
|
|
49
42
|
function _non_iterable_rest() {
|
|
50
43
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
51
44
|
}
|
|
52
|
-
function _non_iterable_spread() {
|
|
53
|
-
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
54
|
-
}
|
|
55
45
|
function _object_spread(target) {
|
|
56
46
|
for (var i = 1; i < arguments.length; i++) {
|
|
57
47
|
var source = arguments[i] != null ? arguments[i] : {}, ownKeys2 = Object.keys(source);
|
|
@@ -81,9 +71,6 @@ function _object_spread_props(target, source) {
|
|
|
81
71
|
function _sliced_to_array(arr, i) {
|
|
82
72
|
return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
|
|
83
73
|
}
|
|
84
|
-
function _to_consumable_array(arr) {
|
|
85
|
-
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
86
|
-
}
|
|
87
74
|
function _unsupported_iterable_to_array(o, minLen) {
|
|
88
75
|
if (o) {
|
|
89
76
|
if (typeof o == "string") return _array_like_to_array(o, minLen);
|
|
@@ -146,7 +133,7 @@ function setupMediaListeners() {
|
|
|
146
133
|
}), update();
|
|
147
134
|
};
|
|
148
135
|
if (!(isWeb && isServer) && setupVersion !== mediaVersion) {
|
|
149
|
-
setupVersion = mediaVersion,
|
|
136
|
+
setupVersion = mediaVersion, unlisten();
|
|
150
137
|
for (var key in mediaQueryConfig) _loop(key);
|
|
151
138
|
}
|
|
152
139
|
}
|
|
@@ -162,46 +149,47 @@ var States = /* @__PURE__ */ new WeakMap();
|
|
|
162
149
|
function setMediaShouldUpdate(ref, props) {
|
|
163
150
|
return States.set(ref, _object_spread({}, States.get(ref), props));
|
|
164
151
|
}
|
|
165
|
-
function
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
var hasntUpdated = !touched || touched.every(function(key) {
|
|
170
|
-
return mediaState[key] === prev[key];
|
|
171
|
-
});
|
|
172
|
-
return hasntUpdated ? prev : mediaState;
|
|
152
|
+
function subscribe(subscriber) {
|
|
153
|
+
return listeners.add(subscriber), function() {
|
|
154
|
+
listeners.delete(subscriber);
|
|
155
|
+
};
|
|
173
156
|
}
|
|
174
|
-
function useMedia(uidIn, componentContext) {
|
|
175
|
-
var
|
|
157
|
+
function useMedia(uidIn, componentContext, debug) {
|
|
158
|
+
var uid = uidIn ?? useRef(), disableSSR = getDisableSSR(componentContext), initialState = (disableSSR || !isWeb ? mediaState : initState) || {}, componentState = States.get(uid);
|
|
176
159
|
componentState || (componentState = {
|
|
177
160
|
prev: initialState
|
|
178
161
|
}, States.set(uid, componentState));
|
|
179
|
-
var
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
162
|
+
var getSnapshot = function() {
|
|
163
|
+
if (!componentState)
|
|
164
|
+
return initialState;
|
|
165
|
+
var enabled = componentState.enabled, keys = componentState.keys, _componentState_prev = componentState.prev, prev = _componentState_prev === void 0 ? initialState : _componentState_prev;
|
|
166
|
+
if (enabled === !1)
|
|
167
|
+
return prev;
|
|
168
|
+
var _ref, testKeys = (_ref = (keys != null || enabled) && keys) !== null && _ref !== void 0 ? _ref : null, hasntUpdated = !testKeys || Object.keys(testKeys).every(function(key) {
|
|
169
|
+
return mediaState[key] === prev[key];
|
|
170
|
+
});
|
|
171
|
+
return hasntUpdated ? prev : (componentState.prev = mediaState, mediaState);
|
|
172
|
+
}, state;
|
|
173
|
+
if (process.env.TAMAGUI_SYNC_MEDIA_QUERY)
|
|
174
|
+
state = useSyncExternalStore(subscribe, getSnapshot, function() {
|
|
175
|
+
return initialState;
|
|
176
|
+
});
|
|
177
|
+
else {
|
|
178
|
+
var _useState = _sliced_to_array(useState(initialState), 2), _state = _useState[0], setState = _useState[1];
|
|
179
|
+
state = _state, useIsomorphicLayoutEffect(function() {
|
|
180
|
+
var update = function() {
|
|
181
|
+
setState(getSnapshot);
|
|
182
|
+
};
|
|
183
|
+
return update(), disableSSR || Promise.resolve().then(function() {
|
|
184
|
+
update();
|
|
185
|
+
}), subscribe(update);
|
|
186
|
+
}, []);
|
|
187
|
+
}
|
|
188
|
+
return new Proxy(state, {
|
|
201
189
|
get: function(_, key) {
|
|
202
190
|
if (typeof key == "string") {
|
|
203
191
|
var _componentState;
|
|
204
|
-
(_componentState = componentState).
|
|
192
|
+
(_componentState = componentState).keys || (_componentState.keys = {}), componentState.keys[key] = !0, process.env.NODE_ENV === "development" && debug && console.info("useMedia() TOUCH", key);
|
|
205
193
|
}
|
|
206
194
|
return Reflect.get(state, key);
|
|
207
195
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/hooks/Users/n8/tamagui/packages/web/src/hooks/useMedia.tsx"],
|
|
4
|
-
"mappings": "AAAA,SAASA,UAAUC,OAAOC,iCAAiC;AAC3D,SAASC,QAAQC,
|
|
5
|
-
"names": ["isServer", "isWeb", "useIsomorphicLayoutEffect", "useRef", "useState", "
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["isServer", "isWeb", "useIsomorphicLayoutEffect", "useRef", "useState", "useSyncExternalStore", "getConfig", "matchMedia", "pseudoDescriptors", "getDisableSSR", "mediaState", "process", "env", "NODE_ENV", "Proxy", "get", "target", "key", "Error", "Reflect", "mediaQueryConfig", "getMedia", "mediaKeys", "Set", "mediaKeyRegex", "isMediaKey", "has", "match", "initState", "defaultMediaImportance", "Object", "keys", "length", "mediaKeysOrdered", "getMediaKeyImportance", "conf", "settings", "mediaPropOrder", "indexOf", "dispose", "mediaVersion", "configureMedia", "config", "media", "mediaQueryDefaultActive", "add", "assign", "disableSSR", "setupMediaListeners", "updateCurrentState", "unlisten", "forEach", "cb", "clear", "setupVersion", "update", "next", "getMatch", "matches", "str", "mediaObjectToString", "addListener", "removeListener", "listeners", "flushing", "flushVersion", "Promise", "resolve", "then", "States", "WeakMap", "setMediaShouldUpdate", "ref", "props", "set", "subscribe", "subscriber", "delete", "useMedia", "uidIn", "componentContext", "debug", "uid", "initialState", "componentState", "prev", "getSnapshot", "enabled", "testKeys", "hasntUpdated", "every", "state", "TAMAGUI_SYNC_MEDIA_QUERY", "_state", "setState", "_", "console", "info", "getMediaImportanceIfMoreImportant", "mediaKey", "importancesUsed", "isSizeMedia", "importance", "camelToHyphen", "replace", "m", "toLowerCase", "cache", "cachedMediaKeyToQuery", "query", "res", "entries", "map", "feature", "value", "test", "join", "mediaKeyToQuery", "mediaKeyMatch", "dimensions", "mediaQueries", "result", "expectedVal", "isMax", "startsWith", "isWidth", "endsWith", "givenVal"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/web",
|
|
3
|
-
"version": "1.101.
|
|
3
|
+
"version": "1.101.3",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"main": "dist/cjs",
|
|
6
6
|
"module": "dist/esm",
|
|
@@ -27,18 +27,18 @@
|
|
|
27
27
|
"reset.css"
|
|
28
28
|
],
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@tamagui/compose-refs": "1.101.
|
|
31
|
-
"@tamagui/constants": "1.101.
|
|
32
|
-
"@tamagui/helpers": "1.101.
|
|
33
|
-
"@tamagui/normalize-css-color": "1.101.
|
|
34
|
-
"@tamagui/timer": "1.101.
|
|
35
|
-
"@tamagui/types": "1.101.
|
|
36
|
-
"@tamagui/use-did-finish-ssr": "1.101.
|
|
37
|
-
"@tamagui/use-event": "1.101.
|
|
38
|
-
"@tamagui/use-force-update": "1.101.
|
|
30
|
+
"@tamagui/compose-refs": "1.101.3",
|
|
31
|
+
"@tamagui/constants": "1.101.3",
|
|
32
|
+
"@tamagui/helpers": "1.101.3",
|
|
33
|
+
"@tamagui/normalize-css-color": "1.101.3",
|
|
34
|
+
"@tamagui/timer": "1.101.3",
|
|
35
|
+
"@tamagui/types": "1.101.3",
|
|
36
|
+
"@tamagui/use-did-finish-ssr": "1.101.3",
|
|
37
|
+
"@tamagui/use-event": "1.101.3",
|
|
38
|
+
"@tamagui/use-force-update": "1.101.3"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@tamagui/build": "1.101.
|
|
41
|
+
"@tamagui/build": "1.101.3",
|
|
42
42
|
"@testing-library/react": "^14.0.0",
|
|
43
43
|
"csstype": "^3.0.10",
|
|
44
44
|
"react": "^18.2.0",
|
package/src/createComponent.tsx
CHANGED
|
@@ -765,20 +765,22 @@ export function createComponent<
|
|
|
765
765
|
|
|
766
766
|
// only listen for changes if we are using raw theme values or media space, or dynamic media (native)
|
|
767
767
|
// array = space media breakpoints
|
|
768
|
-
const
|
|
768
|
+
const hasRuntimeMediaKeys = splitStyles.hasMedia && splitStyles.hasMedia !== true
|
|
769
769
|
const shouldListenForMedia =
|
|
770
770
|
didGetVariableValue() ||
|
|
771
|
-
|
|
771
|
+
hasRuntimeMediaKeys ||
|
|
772
772
|
(noClassNames && splitStyles.hasMedia === true)
|
|
773
773
|
|
|
774
|
-
const mediaListeningKeys =
|
|
774
|
+
const mediaListeningKeys = hasRuntimeMediaKeys
|
|
775
|
+
? (splitStyles.hasMedia as Record<string, boolean>)
|
|
776
|
+
: null
|
|
775
777
|
if (process.env.NODE_ENV === 'development' && debugProp) {
|
|
776
778
|
console.info(`useMedia() createComponent`, shouldListenForMedia, mediaListeningKeys)
|
|
777
779
|
}
|
|
778
780
|
|
|
779
781
|
setMediaShouldUpdate(stateRef, {
|
|
780
782
|
enabled: shouldListenForMedia,
|
|
781
|
-
|
|
783
|
+
keys: mediaListeningKeys,
|
|
782
784
|
})
|
|
783
785
|
|
|
784
786
|
const {
|
|
@@ -1360,7 +1362,7 @@ export function createComponent<
|
|
|
1360
1362
|
elementType,
|
|
1361
1363
|
events,
|
|
1362
1364
|
isAnimated,
|
|
1363
|
-
|
|
1365
|
+
hasRuntimeMediaKeys,
|
|
1364
1366
|
isStringElement,
|
|
1365
1367
|
mediaListeningKeys,
|
|
1366
1368
|
pseudos,
|
|
@@ -176,7 +176,7 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
176
176
|
|
|
177
177
|
let pseudos: PseudoStyles | null = null
|
|
178
178
|
let space: SpaceTokens | null = props.space
|
|
179
|
-
let hasMedia: boolean | string
|
|
179
|
+
let hasMedia: boolean | Record<string, boolean> = false
|
|
180
180
|
let dynamicThemeAccess: boolean | undefined
|
|
181
181
|
let pseudoGroups: Set<string> | undefined
|
|
182
182
|
let mediaGroups: Set<string> | undefined
|
|
@@ -830,10 +830,10 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
830
830
|
hasMedia ||= true
|
|
831
831
|
|
|
832
832
|
if (hasSpace || !shouldDoClasses || styleProps.willBeAnimated) {
|
|
833
|
-
if (
|
|
834
|
-
hasMedia =
|
|
833
|
+
if (typeof hasMedia !== 'object') {
|
|
834
|
+
hasMedia = {}
|
|
835
835
|
}
|
|
836
|
-
hasMedia
|
|
836
|
+
hasMedia[mediaKeyShort] = true
|
|
837
837
|
}
|
|
838
838
|
|
|
839
839
|
// can bail early
|
|
@@ -3,21 +3,17 @@ import { useEffect, useSyncExternalStore } from 'react'
|
|
|
3
3
|
let didHydrateOnce = false
|
|
4
4
|
|
|
5
5
|
export function useDidHydrateOnceRoot() {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
}, [])
|
|
19
|
-
}
|
|
20
|
-
}
|
|
6
|
+
// useEffect(() => {
|
|
7
|
+
// const tm = setInterval(() => {
|
|
8
|
+
// if (Date.now() - last > 50) {
|
|
9
|
+
// didHydrateOnce = true
|
|
10
|
+
// clearInterval(tm)
|
|
11
|
+
// }
|
|
12
|
+
// }, 16)
|
|
13
|
+
// return () => {
|
|
14
|
+
// clearInterval(tm)
|
|
15
|
+
// }
|
|
16
|
+
// }, [])
|
|
21
17
|
return true
|
|
22
18
|
}
|
|
23
19
|
|
|
@@ -27,12 +23,11 @@ export function useDidHydrateOnce() {
|
|
|
27
23
|
if (process.env.TAMAGUI_TARGET !== 'web') {
|
|
28
24
|
return true
|
|
29
25
|
}
|
|
30
|
-
if (process.env.TAMAGUI_REACT_19) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
26
|
+
// if (process.env.TAMAGUI_REACT_19) {
|
|
27
|
+
// if (!didHydrateOnce) {
|
|
28
|
+
// last = Date.now()
|
|
29
|
+
// }
|
|
30
|
+
// }
|
|
36
31
|
return useDidHydrateSync()
|
|
37
32
|
}
|
|
38
33
|
|