@tamagui/web 2.3.3 → 2.4.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.
- package/.turbo/turbo-build.log +1 -1
- package/dist/cjs/createComponent.native.js +1 -1
- package/dist/cjs/createComponent.native.js.map +1 -1
- package/dist/cjs/helpers/getSplitStyles.cjs +5 -0
- package/dist/cjs/helpers/getSplitStyles.native.js +9 -0
- package/dist/cjs/helpers/getSplitStyles.native.js.map +1 -1
- package/dist/cjs/helpers/pointerEvents.native.js +26 -20
- package/dist/cjs/helpers/pointerEvents.native.js.map +1 -1
- package/dist/cjs/hooks/useComponentState.cjs +25 -1
- package/dist/cjs/hooks/useComponentState.native.js +25 -1
- package/dist/cjs/hooks/useComponentState.native.js.map +1 -1
- package/dist/cjs/hooks/useMedia.cjs +107 -42
- package/dist/cjs/hooks/useMedia.native.js +149 -60
- package/dist/cjs/hooks/useMedia.native.js.map +1 -1
- package/dist/cjs/hooks/useTheme.cjs +17 -4
- package/dist/cjs/hooks/useTheme.native.js +18 -4
- package/dist/cjs/hooks/useTheme.native.js.map +1 -1
- package/dist/cjs/hooks/useThemeState.cjs +132 -67
- package/dist/cjs/hooks/useThemeState.native.js +144 -70
- package/dist/cjs/hooks/useThemeState.native.js.map +1 -1
- package/dist/cjs/index.cjs +2 -0
- package/dist/cjs/index.native.js +2 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/views/Theme.cjs +1 -1
- package/dist/cjs/views/Theme.native.js +1 -1
- package/dist/cjs/views/Theme.native.js.map +1 -1
- package/dist/esm/createComponent.native.js +2 -2
- package/dist/esm/createComponent.native.js.map +1 -1
- package/dist/esm/helpers/getSplitStyles.mjs +5 -0
- package/dist/esm/helpers/getSplitStyles.mjs.map +1 -1
- package/dist/esm/helpers/getSplitStyles.native.js +9 -0
- package/dist/esm/helpers/getSplitStyles.native.js.map +1 -1
- package/dist/esm/helpers/pointerEvents.native.js +26 -20
- package/dist/esm/helpers/pointerEvents.native.js.map +1 -1
- package/dist/esm/hooks/useComponentState.mjs +26 -2
- package/dist/esm/hooks/useComponentState.mjs.map +1 -1
- package/dist/esm/hooks/useComponentState.native.js +26 -2
- package/dist/esm/hooks/useComponentState.native.js.map +1 -1
- package/dist/esm/hooks/useMedia.mjs +108 -43
- package/dist/esm/hooks/useMedia.mjs.map +1 -1
- package/dist/esm/hooks/useMedia.native.js +150 -61
- package/dist/esm/hooks/useMedia.native.js.map +1 -1
- package/dist/esm/hooks/useTheme.mjs +17 -4
- package/dist/esm/hooks/useTheme.mjs.map +1 -1
- package/dist/esm/hooks/useTheme.native.js +18 -4
- package/dist/esm/hooks/useTheme.native.js.map +1 -1
- package/dist/esm/hooks/useThemeState.mjs +133 -68
- package/dist/esm/hooks/useThemeState.mjs.map +1 -1
- package/dist/esm/hooks/useThemeState.native.js +145 -71
- package/dist/esm/hooks/useThemeState.native.js.map +1 -1
- package/dist/esm/index.js +3 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +3 -3
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +3 -3
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/views/Theme.mjs +1 -1
- package/dist/esm/views/Theme.mjs.map +1 -1
- package/dist/esm/views/Theme.native.js +1 -1
- package/dist/esm/views/Theme.native.js.map +1 -1
- package/package.json +13 -13
- package/src/createComponent.tsx +8 -2
- package/src/helpers/getSplitStyles.tsx +33 -0
- package/src/helpers/pointerEvents.native.ts +26 -19
- package/src/hooks/useComponentState.ts +39 -2
- package/src/hooks/useMedia.tsx +147 -42
- package/src/hooks/useTheme.tsx +27 -5
- package/src/hooks/useThemeState.ts +263 -137
- package/src/index.ts +7 -1
- package/src/types.tsx +53 -5
- package/src/views/Theme.tsx +4 -1
- package/types/createComponent.d.ts.map +1 -1
- package/types/helpers/getSplitStyles.d.ts.map +1 -1
- package/types/helpers/pointerEvents.native.d.ts.map +1 -1
- package/types/hooks/useComponentState.d.ts +1 -1
- package/types/hooks/useComponentState.d.ts.map +1 -1
- package/types/hooks/useMedia.d.ts.map +1 -1
- package/types/hooks/useTheme.d.ts +1 -1
- package/types/hooks/useTheme.d.ts.map +1 -1
- package/types/hooks/useThemeState.d.ts +1 -1
- package/types/hooks/useThemeState.d.ts.map +1 -1
- package/types/index.d.ts +2 -2
- package/types/index.d.ts.map +1 -1
- package/types/types.d.ts +3 -1
- package/types/types.d.ts.map +1 -1
- package/types/views/Theme.d.ts.map +1 -1
|
@@ -39,13 +39,19 @@ function usePointerEvents(props, viewProps) {
|
|
|
39
39
|
onPointerLeave
|
|
40
40
|
} = props;
|
|
41
41
|
var hasPointerEvents = onPointerDown || onPointerUp || onPointerMove || onPointerCancel || onPointerEnter || onPointerLeave;
|
|
42
|
-
var
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
42
|
+
var ref = (0, import_react.useRef)(null);
|
|
43
|
+
if (!ref.current) {
|
|
44
|
+
ref.current = {
|
|
45
|
+
isInside: false,
|
|
46
|
+
layout: {
|
|
47
|
+
width: 0,
|
|
48
|
+
height: 0
|
|
49
|
+
},
|
|
50
|
+
isCaptured: false
|
|
51
|
+
};
|
|
52
|
+
}
|
|
48
53
|
if (!hasPointerEvents) return;
|
|
54
|
+
var bag = ref.current;
|
|
49
55
|
var createNormalizedEvent = function (e) {
|
|
50
56
|
var touch = e.nativeEvent;
|
|
51
57
|
var _touch_identifier;
|
|
@@ -62,10 +68,10 @@ function usePointerEvents(props, viewProps) {
|
|
|
62
68
|
nativeEvent: touch,
|
|
63
69
|
target: {
|
|
64
70
|
setPointerCapture: function (_pointerId) {
|
|
65
|
-
|
|
71
|
+
bag.isCaptured = true;
|
|
66
72
|
},
|
|
67
73
|
releasePointerCapture: function (_pointerId) {
|
|
68
|
-
|
|
74
|
+
bag.isCaptured = false;
|
|
69
75
|
}
|
|
70
76
|
}
|
|
71
77
|
};
|
|
@@ -78,7 +84,7 @@ function usePointerEvents(props, viewProps) {
|
|
|
78
84
|
}
|
|
79
85
|
if (onPointerUp) {
|
|
80
86
|
viewProps.onTouchEnd = (0, import_helpers.composeEventHandlers)(viewProps.onTouchEnd, function (e) {
|
|
81
|
-
|
|
87
|
+
bag.isCaptured = false;
|
|
82
88
|
onPointerUp(createNormalizedEvent(e));
|
|
83
89
|
});
|
|
84
90
|
}
|
|
@@ -91,22 +97,22 @@ function usePointerEvents(props, viewProps) {
|
|
|
91
97
|
var {
|
|
92
98
|
width,
|
|
93
99
|
height
|
|
94
|
-
} =
|
|
100
|
+
} = bag.layout;
|
|
95
101
|
var isInBounds = locationX >= 0 && locationX <= width && locationY >= 0 && locationY <= height;
|
|
96
|
-
if (
|
|
102
|
+
if (bag.isCaptured || isInBounds) {
|
|
97
103
|
onPointerMove(createNormalizedEvent(e));
|
|
98
104
|
}
|
|
99
105
|
});
|
|
100
106
|
}
|
|
101
107
|
if (onPointerCancel) {
|
|
102
108
|
viewProps.onTouchCancel = (0, import_helpers.composeEventHandlers)(viewProps.onTouchCancel, function (e) {
|
|
103
|
-
|
|
109
|
+
bag.isCaptured = false;
|
|
104
110
|
onPointerCancel(createNormalizedEvent(e));
|
|
105
111
|
});
|
|
106
112
|
}
|
|
107
113
|
if (onPointerEnter || onPointerLeave || onPointerMove) {
|
|
108
114
|
viewProps.onLayout = (0, import_helpers.composeEventHandlers)(viewProps.onLayout, function (e) {
|
|
109
|
-
|
|
115
|
+
bag.layout = {
|
|
110
116
|
width: e.nativeEvent.layout.width,
|
|
111
117
|
height: e.nativeEvent.layout.height
|
|
112
118
|
};
|
|
@@ -121,9 +127,9 @@ function usePointerEvents(props, viewProps) {
|
|
|
121
127
|
var {
|
|
122
128
|
width,
|
|
123
129
|
height
|
|
124
|
-
} =
|
|
130
|
+
} = bag.layout;
|
|
125
131
|
if (locationX >= 0 && locationX <= width && locationY >= 0 && locationY <= height) {
|
|
126
|
-
|
|
132
|
+
bag.isInside = true;
|
|
127
133
|
onPointerEnter(createNormalizedEvent(e));
|
|
128
134
|
}
|
|
129
135
|
});
|
|
@@ -137,16 +143,16 @@ function usePointerEvents(props, viewProps) {
|
|
|
137
143
|
var {
|
|
138
144
|
width,
|
|
139
145
|
height
|
|
140
|
-
} =
|
|
146
|
+
} = bag.layout;
|
|
141
147
|
var isInside = locationX >= 0 && locationX <= width && locationY >= 0 && locationY <= height;
|
|
142
|
-
if (
|
|
143
|
-
|
|
148
|
+
if (bag.isInside && !isInside) {
|
|
149
|
+
bag.isInside = false;
|
|
144
150
|
onPointerLeave(createNormalizedEvent(e));
|
|
145
151
|
}
|
|
146
152
|
});
|
|
147
153
|
viewProps.onTouchEnd = (0, import_helpers.composeEventHandlers)(viewProps.onTouchEnd, function (e) {
|
|
148
|
-
if (
|
|
149
|
-
|
|
154
|
+
if (bag.isInside) {
|
|
155
|
+
bag.isInside = false;
|
|
150
156
|
onPointerLeave(createNormalizedEvent(e));
|
|
151
157
|
}
|
|
152
158
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["pointerEvents_native_exports","__export","usePointerEvents","module","exports","__toCommonJS","import_react","require","import_helpers","props","viewProps","onPointerDown","onPointerUp","onPointerMove","onPointerCancel","onPointerEnter","onPointerLeave","hasPointerEvents","
|
|
1
|
+
{"version":3,"names":["pointerEvents_native_exports","__export","usePointerEvents","module","exports","__toCommonJS","import_react","require","import_helpers","props","viewProps","onPointerDown","onPointerUp","onPointerMove","onPointerCancel","onPointerEnter","onPointerLeave","hasPointerEvents","ref","useRef","current","isInside","layout","width","height","isCaptured","bag","createNormalizedEvent","e","touch","nativeEvent","_touch_identifier","normalized","clientX","pageX","clientY","pageY","offsetX","locationX","offsetY","locationY","pointerType","pointerId","identifier","target","setPointerCapture","_pointerId","releasePointerCapture","onTouchStart","composeEventHandlers","onTouchEnd","onTouchMove","isInBounds","onTouchCancel","onLayout"],"sources":["../../../src/helpers/pointerEvents.native.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -112,7 +112,31 @@ const useComponentState = (props, animationDriver, staticConfig, config) => {
|
|
|
112
112
|
}));
|
|
113
113
|
}
|
|
114
114
|
const groupName = props.group;
|
|
115
|
-
|
|
115
|
+
if (!stateRef.current.baseSetStateShallow) {
|
|
116
|
+
const r = stateRef.current;
|
|
117
|
+
r.baseSetStateShallow = stateOrGetState => {
|
|
118
|
+
setState(prev => {
|
|
119
|
+
const next = typeof stateOrGetState === "function" ? stateOrGetState(prev) : stateOrGetState;
|
|
120
|
+
const update = (0, import_is_equal_shallow.mergeIfNotShallowEqual)(prev, next);
|
|
121
|
+
if (process.env.NODE_ENV === "development") {
|
|
122
|
+
const dbg = r.__debug;
|
|
123
|
+
if (dbg && update !== prev) {
|
|
124
|
+
console.groupCollapsed(`setStateShallow CHANGE`, "=>", update);
|
|
125
|
+
console.info(`previously`, prev);
|
|
126
|
+
console.trace();
|
|
127
|
+
console.groupEnd();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return update;
|
|
131
|
+
});
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
if (process.env.NODE_ENV === "development") {
|
|
135
|
+
;
|
|
136
|
+
stateRef.current.__debug = props.debug;
|
|
137
|
+
}
|
|
138
|
+
const setStateShallow = stateRef.current.baseSetStateShallow;
|
|
139
|
+
if (process.env.NODE_ENV === "development" && globalThis.time) globalThis.time`state-useCreateShallowSetState`;
|
|
116
140
|
if (presenceState && isAnimated && isHydrated && staticConfig.variants) {
|
|
117
141
|
if (process.env.NODE_ENV === "development" && props.debug === "verbose") {
|
|
118
142
|
console.warn(`has presenceState ${JSON.stringify(presenceState)}`);
|
|
@@ -124,7 +124,31 @@ var useComponentState = function (props, animationDriver, staticConfig, config)
|
|
|
124
124
|
});
|
|
125
125
|
}
|
|
126
126
|
var groupName = props.group;
|
|
127
|
-
|
|
127
|
+
if (!stateRef.current.baseSetStateShallow) {
|
|
128
|
+
var r = stateRef.current;
|
|
129
|
+
r.baseSetStateShallow = function (stateOrGetState) {
|
|
130
|
+
setState(function (prev) {
|
|
131
|
+
var next = typeof stateOrGetState === "function" ? stateOrGetState(prev) : stateOrGetState;
|
|
132
|
+
var update = (0, import_is_equal_shallow.mergeIfNotShallowEqual)(prev, next);
|
|
133
|
+
if (process.env.NODE_ENV === "development") {
|
|
134
|
+
var dbg = r.__debug;
|
|
135
|
+
if (dbg && update !== prev) {
|
|
136
|
+
console.groupCollapsed(`setStateShallow CHANGE`, "=>", update);
|
|
137
|
+
console.info(`previously`, prev);
|
|
138
|
+
console.trace();
|
|
139
|
+
console.groupEnd();
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return update;
|
|
143
|
+
});
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
if (process.env.NODE_ENV === "development") {
|
|
147
|
+
;
|
|
148
|
+
stateRef.current.__debug = props.debug;
|
|
149
|
+
}
|
|
150
|
+
var setStateShallow = stateRef.current.baseSetStateShallow;
|
|
151
|
+
if (process.env.NODE_ENV === "development" && globalThis.time) globalThis.time`state-useCreateShallowSetState`;
|
|
128
152
|
if (presenceState && isAnimated && isHydrated && staticConfig.variants) {
|
|
129
153
|
if (process.env.NODE_ENV === "development" && props.debug === "verbose") {
|
|
130
154
|
console.warn(`has presenceState ${JSON.stringify(presenceState)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","useComponentState_exports","__export","useComponentState","module","exports","import_constants","require","import_is_equal_shallow","import_use_did_finish_ssr","import_react","import_config","import_defaultComponentState","import_isObj","import_log","_type_of","obj","Symbol","constructor","props","animationDriver","staticConfig","config","_getPlatformDriver","_animationDriver_usePresence","isHydrated","useDidFinishSSR","needsHydration","useIsClientOnly","useAnimations","isStub","isHOC","stateRef","useRef","current","startedUnhydrated","hasAnimationProp","Boolean","style","hasAnimatedStyleValue","_animationDriver_inputStyle","inputStyle","_animationDriver_outputStyle","outputStyle","curStateRef","hasAnimated","platformPseudo","avoidReRenders","getPlatformDriver","pseudo","willBeAnimatedClient","next","willBeAnimated","isServer","disableClassName","presence","usePresence","call","presenceState","isExiting","isPresent","isEntering","initial","hasEnterStyle","enterStyle","hasAnimationThatNeedsHydrate","isReactNative","canImmediatelyEnter","shouldEnter","initialState","defaultComponentStateShouldEnter","defaultComponentState","defaultComponentStateMounted","disabled","isDisabled","states","useState","state","forceStyle","setState","isAnimated","isWeb","willHydrate","Object","assign","_","groupName","group","
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","useComponentState_exports","__export","useComponentState","module","exports","import_constants","require","import_is_equal_shallow","import_use_did_finish_ssr","import_react","import_config","import_defaultComponentState","import_isObj","import_log","_type_of","obj","Symbol","constructor","props","animationDriver","staticConfig","config","_getPlatformDriver","_animationDriver_usePresence","isHydrated","useDidFinishSSR","needsHydration","useIsClientOnly","useAnimations","isStub","isHOC","stateRef","useRef","current","startedUnhydrated","hasAnimationProp","Boolean","style","hasAnimatedStyleValue","_animationDriver_inputStyle","inputStyle","_animationDriver_outputStyle","outputStyle","curStateRef","hasAnimated","platformPseudo","avoidReRenders","getPlatformDriver","pseudo","willBeAnimatedClient","next","willBeAnimated","isServer","disableClassName","presence","usePresence","call","presenceState","isExiting","isPresent","isEntering","initial","hasEnterStyle","enterStyle","hasAnimationThatNeedsHydrate","isReactNative","canImmediatelyEnter","shouldEnter","initialState","defaultComponentStateShouldEnter","defaultComponentState","defaultComponentStateMounted","disabled","isDisabled","states","useState","state","forceStyle","setState","isAnimated","isWeb","willHydrate","Object","assign","_","groupName","group","baseSetStateShallow","r","stateOrGetState","prev","update","mergeIfNotShallowEqual","process","env","NODE_ENV","dbg","__debug","console","groupCollapsed","info","trace","groupEnd","debug","setStateShallow","globalThis","time","variants","warn","JSON","stringify","enterVariant","exitVariant","enterExitVariant","custom","isObj","exv","unmounted","noClass","isAnimatedAndHydrated","isClassNameDisabled","acceptsClassName","getSetting","isDisabledManually","log"],"sources":["../../../src/hooks/useComponentState.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -77,6 +77,7 @@ const configureMedia = config => {
|
|
|
77
77
|
if (!media) return;
|
|
78
78
|
mediaVersion++;
|
|
79
79
|
(0, import_createMediaStyle.resetMediaStyleCache)();
|
|
80
|
+
resetMediaTouchTracker();
|
|
80
81
|
for (const key in media) {
|
|
81
82
|
(0, import_mediaState.getMedia)()[key] = mediaQueryDefaultActive?.[key] || false;
|
|
82
83
|
import_mediaState.mediaKeys.add(`$${key}`);
|
|
@@ -127,6 +128,33 @@ function updateMediaListeners() {
|
|
|
127
128
|
listeners.forEach(cb => cb((0, import_mediaState.getMedia)()));
|
|
128
129
|
}
|
|
129
130
|
const States = /* @__PURE__ */new WeakMap();
|
|
131
|
+
let touchTrackerProto = null;
|
|
132
|
+
const refSlot = /* @__PURE__ */Symbol("mediaRefSlot");
|
|
133
|
+
function buildTouchTrackerProto() {
|
|
134
|
+
const proto = {};
|
|
135
|
+
for (const fullKey of import_mediaState.mediaKeys) {
|
|
136
|
+
const key = fullKey[0] === "$" ? fullKey.slice(1) : fullKey;
|
|
137
|
+
proto[key] = {
|
|
138
|
+
enumerable: true,
|
|
139
|
+
configurable: true,
|
|
140
|
+
get() {
|
|
141
|
+
const slot = this[refSlot];
|
|
142
|
+
if (!disableMediaTouch) {
|
|
143
|
+
slot.keys.add(key);
|
|
144
|
+
}
|
|
145
|
+
return slot.proxyTarget[key];
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
return Object.create(null, proto);
|
|
150
|
+
}
|
|
151
|
+
function getTouchTrackerProto() {
|
|
152
|
+
if (!touchTrackerProto) touchTrackerProto = buildTouchTrackerProto();
|
|
153
|
+
return touchTrackerProto;
|
|
154
|
+
}
|
|
155
|
+
function resetMediaTouchTracker() {
|
|
156
|
+
touchTrackerProto = null;
|
|
157
|
+
}
|
|
130
158
|
function setMediaShouldUpdate(ref, enabled, keys) {
|
|
131
159
|
const cur = States.get(ref);
|
|
132
160
|
if (!cur || cur.enabled !== enabled || keys) {
|
|
@@ -146,60 +174,97 @@ function subscribe(subscriber) {
|
|
|
146
174
|
function useMedia(componentContext, debug) {
|
|
147
175
|
"use no memo";
|
|
148
176
|
|
|
149
|
-
const componentState = componentContext ? States.get(componentContext) : null;
|
|
150
177
|
const internalRef = (0, import_react.useRef)(null);
|
|
151
178
|
if (!internalRef.current) {
|
|
152
|
-
|
|
179
|
+
const initial = (0, import_mediaState.getMedia)();
|
|
180
|
+
const r = {
|
|
153
181
|
keys: /* @__PURE__ */new Set(),
|
|
154
|
-
lastState:
|
|
182
|
+
lastState: initial,
|
|
183
|
+
renderVersion: 0,
|
|
184
|
+
proxyTarget: initial,
|
|
185
|
+
proxy: void 0,
|
|
186
|
+
getSnapshot: void 0,
|
|
187
|
+
componentContext,
|
|
188
|
+
debug
|
|
189
|
+
};
|
|
190
|
+
const tracker = Object.create(getTouchTrackerProto());
|
|
191
|
+
tracker[refSlot] = {
|
|
192
|
+
proxyTarget: initial,
|
|
193
|
+
keys: r.keys
|
|
194
|
+
};
|
|
195
|
+
r.proxy = tracker;
|
|
196
|
+
r.getSnapshot = () => {
|
|
197
|
+
const curKeys = r.componentContext ? States.get(r.componentContext)?.keys || r.keys : r.keys;
|
|
198
|
+
const {
|
|
199
|
+
lastState,
|
|
200
|
+
pendingState
|
|
201
|
+
} = r;
|
|
202
|
+
if (!curKeys.size) {
|
|
203
|
+
return lastState;
|
|
204
|
+
}
|
|
205
|
+
const ms = (0, import_mediaState.getMedia)();
|
|
206
|
+
for (const key of curKeys) {
|
|
207
|
+
if (ms[key] !== (pendingState || lastState)[key]) {
|
|
208
|
+
if (process.env.NODE_ENV === "development" && r.debug) {
|
|
209
|
+
console.warn(`useMedia() \u270D\uFE0F`, key, lastState[key], "=>", ms[key]);
|
|
210
|
+
}
|
|
211
|
+
if (r.componentContext?.mediaEmit) {
|
|
212
|
+
r.componentContext.mediaEmit(ms);
|
|
213
|
+
r.pendingState = ms;
|
|
214
|
+
return lastState;
|
|
215
|
+
}
|
|
216
|
+
r.lastState = ms;
|
|
217
|
+
return ms;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
return lastState;
|
|
155
221
|
};
|
|
222
|
+
internalRef.current = r;
|
|
223
|
+
} else {
|
|
224
|
+
internalRef.current.componentContext = componentContext;
|
|
225
|
+
internalRef.current.debug = debug;
|
|
156
226
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
227
|
+
const ref = internalRef.current;
|
|
228
|
+
ref.renderVersion++;
|
|
229
|
+
if (ref.pendingState) {
|
|
230
|
+
ref.lastState = ref.pendingState;
|
|
231
|
+
ref.pendingState = void 0;
|
|
160
232
|
}
|
|
161
|
-
|
|
162
|
-
keys
|
|
163
|
-
} = internalRef.current;
|
|
164
|
-
if (keys.size) {
|
|
165
|
-
keys.clear();
|
|
233
|
+
if (ref.keys.size) {
|
|
234
|
+
ref.keys.clear();
|
|
166
235
|
}
|
|
167
|
-
const
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
internalRef.current.pendingState = ms;
|
|
185
|
-
return lastState;
|
|
186
|
-
}
|
|
187
|
-
internalRef.current.lastState = ms;
|
|
188
|
-
return ms;
|
|
236
|
+
const [, forceUpdate] = (0, import_react.useReducer)(incReducer, 0);
|
|
237
|
+
const state = import_constants.isServer ? initState : ref.getSnapshot();
|
|
238
|
+
ref.proxyTarget = state;
|
|
239
|
+
ref.proxy[refSlot].proxyTarget = state;
|
|
240
|
+
(0, import_react.useEffect)(() => {
|
|
241
|
+
const renderVersion = ref.renderVersion;
|
|
242
|
+
const shouldSubscribe = !ref.componentContext || !!States.get(ref.componentContext)?.enabled;
|
|
243
|
+
if (shouldSubscribe) {
|
|
244
|
+
if (!ref.unsubscribe) {
|
|
245
|
+
ref.unsubscribe = subscribe(() => {
|
|
246
|
+
const next = ref.getSnapshot();
|
|
247
|
+
if (next !== ref.proxyTarget) {
|
|
248
|
+
ref.proxyTarget = next;
|
|
249
|
+
ref.proxy[refSlot].proxyTarget = next;
|
|
250
|
+
forceUpdate();
|
|
251
|
+
}
|
|
252
|
+
});
|
|
189
253
|
}
|
|
254
|
+
} else if (ref.unsubscribe) {
|
|
255
|
+
ref.unsubscribe();
|
|
256
|
+
ref.unsubscribe = void 0;
|
|
190
257
|
}
|
|
191
|
-
return
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
if (!disableMediaTouch && typeof key === "string") {
|
|
196
|
-
keys.add(key);
|
|
258
|
+
return () => {
|
|
259
|
+
if (ref.renderVersion === renderVersion) {
|
|
260
|
+
ref.unsubscribe?.();
|
|
261
|
+
ref.unsubscribe = void 0;
|
|
197
262
|
}
|
|
198
|
-
|
|
199
|
-
}
|
|
263
|
+
};
|
|
200
264
|
});
|
|
265
|
+
return ref.proxy;
|
|
201
266
|
}
|
|
202
|
-
const
|
|
267
|
+
const incReducer = c => c + 1;
|
|
203
268
|
let disableMediaTouch = false;
|
|
204
269
|
function _disableMediaTouch(val) {
|
|
205
270
|
disableMediaTouch = val;
|