@tamagui/web 1.125.13 → 1.125.15
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.cjs +19 -4
- package/dist/cjs/createComponent.js +19 -4
- package/dist/cjs/createComponent.js.map +1 -1
- package/dist/cjs/createComponent.native.js +23 -3
- package/dist/cjs/createComponent.native.js.map +2 -2
- package/dist/cjs/helpers/createShallowSetState.cjs +3 -6
- package/dist/cjs/helpers/createShallowSetState.js +3 -6
- package/dist/cjs/helpers/createShallowSetState.js.map +1 -1
- package/dist/cjs/helpers/createShallowSetState.native.js +3 -5
- package/dist/cjs/helpers/createShallowSetState.native.js.map +2 -2
- package/dist/cjs/helpers/getSplitStyles.js.map +1 -1
- package/dist/cjs/helpers/getSplitStyles.native.js.map +1 -1
- package/dist/cjs/helpers/subscribeToContextGroup.cjs +22 -24
- package/dist/cjs/helpers/subscribeToContextGroup.js +6 -7
- package/dist/cjs/helpers/subscribeToContextGroup.js.map +1 -1
- package/dist/cjs/helpers/subscribeToContextGroup.native.js +6 -6
- package/dist/cjs/helpers/subscribeToContextGroup.native.js.map +2 -2
- package/dist/cjs/hooks/useComponentState.cjs +3 -17
- package/dist/cjs/hooks/useComponentState.js +3 -16
- package/dist/cjs/hooks/useComponentState.js.map +1 -1
- package/dist/cjs/hooks/useComponentState.native.js +3 -19
- package/dist/cjs/hooks/useComponentState.native.js.map +2 -2
- package/dist/esm/createComponent.js +19 -4
- package/dist/esm/createComponent.js.map +1 -1
- package/dist/esm/createComponent.mjs +19 -4
- package/dist/esm/createComponent.mjs.map +1 -1
- package/dist/esm/createComponent.native.js +21 -4
- package/dist/esm/createComponent.native.js.map +1 -1
- package/dist/esm/helpers/createShallowSetState.js +3 -6
- package/dist/esm/helpers/createShallowSetState.js.map +1 -1
- package/dist/esm/helpers/createShallowSetState.mjs +3 -6
- package/dist/esm/helpers/createShallowSetState.mjs.map +1 -1
- package/dist/esm/helpers/createShallowSetState.native.js +3 -4
- package/dist/esm/helpers/createShallowSetState.native.js.map +1 -1
- package/dist/esm/helpers/getSplitStyles.js.map +1 -1
- package/dist/esm/helpers/getSplitStyles.mjs.map +1 -1
- package/dist/esm/helpers/getSplitStyles.native.js.map +1 -1
- package/dist/esm/helpers/subscribeToContextGroup.js +6 -7
- package/dist/esm/helpers/subscribeToContextGroup.js.map +1 -1
- package/dist/esm/helpers/subscribeToContextGroup.mjs +21 -23
- package/dist/esm/helpers/subscribeToContextGroup.mjs.map +1 -1
- package/dist/esm/helpers/subscribeToContextGroup.native.js +10 -10
- package/dist/esm/helpers/subscribeToContextGroup.native.js.map +1 -1
- package/dist/esm/hooks/useComponentState.js +4 -17
- package/dist/esm/hooks/useComponentState.js.map +1 -1
- package/dist/esm/hooks/useComponentState.mjs +4 -18
- package/dist/esm/hooks/useComponentState.mjs.map +1 -1
- package/dist/esm/hooks/useComponentState.native.js +3 -17
- package/dist/esm/hooks/useComponentState.native.js.map +1 -1
- package/package.json +11 -11
- package/src/createComponent.tsx +21 -2
- package/src/helpers/createShallowSetState.tsx +3 -6
- package/src/helpers/getSplitStyles.tsx +5 -0
- package/src/helpers/subscribeToContextGroup.tsx +9 -9
- package/src/hooks/useComponentState.ts +2 -24
- package/src/types.tsx +1 -0
- package/types/createComponent.d.ts.map +1 -1
- package/types/helpers/createShallowSetState.d.ts +1 -1
- package/types/helpers/createShallowSetState.d.ts.map +1 -1
- package/types/helpers/getSplitStyles.d.ts.map +1 -1
- package/types/helpers/subscribeToContextGroup.d.ts +1 -1
- package/types/helpers/subscribeToContextGroup.d.ts.map +1 -1
- package/types/hooks/useComponentState.d.ts +1 -1
- package/types/hooks/useComponentState.d.ts.map +1 -1
- package/types/types.d.ts +1 -0
- package/types/types.d.ts.map +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isServer, isWeb } from "@tamagui/constants";
|
|
2
2
|
import { useDidFinishSSR } from "@tamagui/use-did-finish-ssr";
|
|
3
|
-
import {
|
|
3
|
+
import { useRef, useState } from "react";
|
|
4
4
|
import {
|
|
5
5
|
defaultComponentState,
|
|
6
6
|
defaultComponentStateMounted,
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
import { createShallowSetState } from "../helpers/createShallowSetState";
|
|
10
10
|
import { isObj } from "../helpers/isObj";
|
|
11
11
|
import { log } from "../helpers/log";
|
|
12
|
-
const useComponentState = (props, { animationDriver
|
|
12
|
+
const useComponentState = (props, { animationDriver }, staticConfig, config) => {
|
|
13
13
|
const isHydrated = useDidFinishSSR(), useAnimations = animationDriver?.useAnimations, stateRef = useRef(
|
|
14
14
|
void 0
|
|
15
15
|
);
|
|
@@ -30,25 +30,12 @@ const useComponentState = (props, { animationDriver, groups }, staticConfig, con
|
|
|
30
30
|
const states = useState(initialState), state = props.forceStyle ? { ...states[0], [props.forceStyle]: !0 } : states[0], setState = states[1];
|
|
31
31
|
let isAnimated = willBeAnimated;
|
|
32
32
|
isWeb && hasAnimationThatNeedsHydrate && !staticConfig.isHOC && !isHydrated && (isAnimated = !1, curStateRef.willHydrate = !0), disabled !== state.disabled && (state.disabled = disabled, disabled && Object.assign(state, defaultComponentStateMounted), setState({ ...state }));
|
|
33
|
-
const groupName = props.group
|
|
34
|
-
if (groupContextState && groupName)
|
|
35
|
-
return (state2) => {
|
|
36
|
-
curStateRef.group.emit(groupName, {
|
|
37
|
-
pseudo: state2
|
|
38
|
-
});
|
|
39
|
-
const next = {
|
|
40
|
-
...groupContextState[groupName],
|
|
41
|
-
...state2
|
|
42
|
-
};
|
|
43
|
-
groupContextState[groupName] = next;
|
|
44
|
-
};
|
|
45
|
-
}, [groupContextState, curStateRef, groupName]);
|
|
33
|
+
const groupName = props.group;
|
|
46
34
|
let setStateShallow = createShallowSetState(
|
|
47
35
|
setState,
|
|
48
36
|
disabled ? ["disabled"] : void 0,
|
|
49
37
|
!1,
|
|
50
|
-
props.debug
|
|
51
|
-
setStateWrapper
|
|
38
|
+
props.debug
|
|
52
39
|
);
|
|
53
40
|
if (presenceState && isAnimated && isHydrated && staticConfig.variants) {
|
|
54
41
|
process.env.NODE_ENV === "development" && props.debug === "verbose" && console.warn(`has presenceState ${JSON.stringify(presenceState)}`);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/hooks/useComponentState.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,UAAU,aAAa;AAChC,SAAS,uBAAuB;AAChC,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["state"]
|
|
6
6
|
}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { isServer, isWeb } from "@tamagui/constants";
|
|
2
2
|
import { useDidFinishSSR } from "@tamagui/use-did-finish-ssr";
|
|
3
|
-
import {
|
|
3
|
+
import { useRef, useState } from "react";
|
|
4
4
|
import { defaultComponentState, defaultComponentStateMounted, defaultComponentStateShouldEnter } from "../defaultComponentState.mjs";
|
|
5
5
|
import { createShallowSetState } from "../helpers/createShallowSetState.mjs";
|
|
6
6
|
import { isObj } from "../helpers/isObj.mjs";
|
|
7
7
|
import { log } from "../helpers/log.mjs";
|
|
8
8
|
const useComponentState = (props, {
|
|
9
|
-
animationDriver
|
|
10
|
-
groups
|
|
9
|
+
animationDriver
|
|
11
10
|
}, staticConfig, config) => {
|
|
12
11
|
const isHydrated = useDidFinishSSR(),
|
|
13
12
|
useAnimations = animationDriver?.useAnimations,
|
|
@@ -51,21 +50,8 @@ const useComponentState = (props, {
|
|
|
51
50
|
isWeb && hasAnimationThatNeedsHydrate && !staticConfig.isHOC && !isHydrated && (isAnimated = !1, curStateRef.willHydrate = !0), disabled !== state.disabled && (state.disabled = disabled, disabled && Object.assign(state, defaultComponentStateMounted), setState({
|
|
52
51
|
...state
|
|
53
52
|
}));
|
|
54
|
-
const groupName = props.group
|
|
55
|
-
|
|
56
|
-
setStateWrapper = useMemo(() => {
|
|
57
|
-
if (groupContextState && groupName) return state2 => {
|
|
58
|
-
curStateRef.group.emit(groupName, {
|
|
59
|
-
pseudo: state2
|
|
60
|
-
});
|
|
61
|
-
const next = {
|
|
62
|
-
...groupContextState[groupName],
|
|
63
|
-
...state2
|
|
64
|
-
};
|
|
65
|
-
groupContextState[groupName] = next;
|
|
66
|
-
};
|
|
67
|
-
}, [groupContextState, curStateRef, groupName]);
|
|
68
|
-
let setStateShallow = createShallowSetState(setState, disabled ? ["disabled"] : void 0, !1, props.debug, setStateWrapper);
|
|
53
|
+
const groupName = props.group;
|
|
54
|
+
let setStateShallow = createShallowSetState(setState, disabled ? ["disabled"] : void 0, !1, props.debug);
|
|
69
55
|
if (presenceState && isAnimated && isHydrated && staticConfig.variants) {
|
|
70
56
|
process.env.NODE_ENV === "development" && props.debug === "verbose" && console.warn(`has presenceState ${JSON.stringify(presenceState)}`);
|
|
71
57
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isServer","isWeb","useDidFinishSSR","
|
|
1
|
+
{"version":3,"names":["isServer","isWeb","useDidFinishSSR","useRef","useState","defaultComponentState","defaultComponentStateMounted","defaultComponentStateShouldEnter","createShallowSetState","isObj","log","useComponentState","props","animationDriver","staticConfig","config","isHydrated","useAnimations","stateRef","current","hasAnimationProp","style","hasAnimatedStyleValue","supportsCSSVars","curStateRef","willBeAnimatedClient","isHOC","hasAnimated","willBeAnimated","disableClassName","presence","animatePresence","usePresence","presenceState","isExiting","isPresent","isEntering","initial","hasEnterStyle","enterStyle","hasAnimationThatNeedsHydrate","isReactNative","hasEnterState","initialState","disabled","isDisabled","states","state","forceStyle","setState","isAnimated","willHydrate","Object","assign","groupName","group","setStateShallow","debug","variants","process","env","NODE_ENV","console","warn","JSON","stringify","enterVariant","exitVariant","enterExitVariant","custom","exv","unmounted","noClass","isAnimatedAndHydrated","isClassNameDisabled","acceptsClassName","disableSSR","isDisabledManually","listeners","Set","emit","name","state2","forEach","l","subscribe","cb","add","delete","keys","some","k","val","accessibilityState","accessibilityDisabled"],"sources":["../../../src/hooks/useComponentState.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { isServer, isWeb } from "@tamagui/constants";
|
|
2
2
|
import { useDidFinishSSR } from "@tamagui/use-did-finish-ssr";
|
|
3
|
-
import {
|
|
3
|
+
import { useRef, useState } from "react";
|
|
4
4
|
import { defaultComponentState, defaultComponentStateMounted, defaultComponentStateShouldEnter } from "../defaultComponentState.native.js";
|
|
5
5
|
import { createShallowSetState } from "../helpers/createShallowSetState.native.js";
|
|
6
6
|
import { isObj } from "../helpers/isObj.native.js";
|
|
7
7
|
import { log } from "../helpers/log.native.js";
|
|
8
8
|
var useComponentState = function (props, param, staticConfig, config) {
|
|
9
9
|
var {
|
|
10
|
-
animationDriver
|
|
11
|
-
groups
|
|
10
|
+
animationDriver
|
|
12
11
|
} = param,
|
|
13
12
|
_animationDriver_usePresence,
|
|
14
13
|
isHydrated = useDidFinishSSR(),
|
|
@@ -58,20 +57,7 @@ var useComponentState = function (props, param, staticConfig, config) {
|
|
|
58
57
|
...state
|
|
59
58
|
}));
|
|
60
59
|
var groupName = props.group,
|
|
61
|
-
|
|
62
|
-
setStateWrapper = useMemo(function () {
|
|
63
|
-
if (groupContextState && groupName) return function (state2) {
|
|
64
|
-
curStateRef.group.emit(groupName, {
|
|
65
|
-
pseudo: state2
|
|
66
|
-
});
|
|
67
|
-
var next = {
|
|
68
|
-
...groupContextState[groupName],
|
|
69
|
-
...state2
|
|
70
|
-
};
|
|
71
|
-
groupContextState[groupName] = next;
|
|
72
|
-
};
|
|
73
|
-
}, [groupContextState, curStateRef, groupName]),
|
|
74
|
-
setStateShallow = createShallowSetState(setState, disabled ? ["disabled"] : void 0, !1, props.debug, setStateWrapper);
|
|
60
|
+
setStateShallow = createShallowSetState(setState, disabled ? ["disabled"] : void 0, !1, props.debug);
|
|
75
61
|
if (presenceState && isAnimated && isHydrated && staticConfig.variants) {
|
|
76
62
|
process.env.NODE_ENV === "development" && props.debug === "verbose" && console.warn(`has presenceState ${JSON.stringify(presenceState)}`);
|
|
77
63
|
var {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isServer","isWeb","useDidFinishSSR","
|
|
1
|
+
{"version":3,"names":["isServer","isWeb","useDidFinishSSR","useRef","useState","defaultComponentState","defaultComponentStateMounted","defaultComponentStateShouldEnter","createShallowSetState","isObj","log","useComponentState","props","param","staticConfig","config","animationDriver","_animationDriver_usePresence","isHydrated","useAnimations","stateRef","current","hasAnimationProp","style","hasAnimatedStyleValue","supportsCSSVars","curStateRef","willBeAnimatedClient","next","isHOC","hasAnimated","willBeAnimated","disableClassName","presence","animatePresence","usePresence","call","presenceState","isExiting","isPresent","isEntering","initial","hasEnterStyle","enterStyle","hasAnimationThatNeedsHydrate","isReactNative","hasEnterState","shouldEnter","initialState","disabled","isDisabled","states","state","forceStyle","setState","isAnimated","willHydrate","Object","assign","groupName","group","setStateShallow","debug","variants","process","env","NODE_ENV","console","warn","JSON","stringify","enterVariant","exitVariant","enterExitVariant","custom","exv","unmounted","noClass","isAnimatedAndHydrated","isClassNameDisabled","acceptsClassName","disableSSR","isDisabledManually","listeners","Set","emit","name","state2","forEach","l","subscribe","cb","add","delete","keys","some","k","val","_props_accessibilityState"],"sources":["../../../src/hooks/useComponentState.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/web",
|
|
3
|
-
"version": "1.125.
|
|
3
|
+
"version": "1.125.15",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"main": "dist/cjs",
|
|
6
6
|
"module": "dist/esm",
|
|
@@ -27,22 +27,22 @@
|
|
|
27
27
|
"reset.css"
|
|
28
28
|
],
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@tamagui/compose-refs": "1.125.
|
|
31
|
-
"@tamagui/constants": "1.125.
|
|
32
|
-
"@tamagui/helpers": "1.125.
|
|
33
|
-
"@tamagui/normalize-css-color": "1.125.
|
|
34
|
-
"@tamagui/timer": "1.125.
|
|
35
|
-
"@tamagui/types": "1.125.
|
|
36
|
-
"@tamagui/use-did-finish-ssr": "1.125.
|
|
37
|
-
"@tamagui/use-event": "1.125.
|
|
38
|
-
"@tamagui/use-force-update": "1.125.
|
|
30
|
+
"@tamagui/compose-refs": "1.125.15",
|
|
31
|
+
"@tamagui/constants": "1.125.15",
|
|
32
|
+
"@tamagui/helpers": "1.125.15",
|
|
33
|
+
"@tamagui/normalize-css-color": "1.125.15",
|
|
34
|
+
"@tamagui/timer": "1.125.15",
|
|
35
|
+
"@tamagui/types": "1.125.15",
|
|
36
|
+
"@tamagui/use-did-finish-ssr": "1.125.15",
|
|
37
|
+
"@tamagui/use-event": "1.125.15",
|
|
38
|
+
"@tamagui/use-force-update": "1.125.15"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
41
41
|
"react": "*",
|
|
42
42
|
"react-dom": "*"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@tamagui/build": "1.125.
|
|
45
|
+
"@tamagui/build": "1.125.15",
|
|
46
46
|
"@testing-library/react": "^16.1.0",
|
|
47
47
|
"csstype": "^3.0.10",
|
|
48
48
|
"react": "*",
|
package/src/createComponent.tsx
CHANGED
|
@@ -632,8 +632,10 @@ export function createComponent<
|
|
|
632
632
|
nonTamaguiProps.onLayout = composeEventHandlers(
|
|
633
633
|
nonTamaguiProps.onLayout,
|
|
634
634
|
(e: LayoutEvent) => {
|
|
635
|
+
const layout = e.nativeEvent.layout
|
|
636
|
+
stateRef.current.group!.layout = layout
|
|
635
637
|
stateRef.current.group!.emit(groupName, {
|
|
636
|
-
layout
|
|
638
|
+
layout,
|
|
637
639
|
})
|
|
638
640
|
|
|
639
641
|
// force re-render if measure strategy is hide
|
|
@@ -747,6 +749,23 @@ export function createComponent<
|
|
|
747
749
|
mediaGroups ? Object.keys([...mediaGroups]).join('') : 0,
|
|
748
750
|
])
|
|
749
751
|
|
|
752
|
+
useIsomorphicLayoutEffect(() => {
|
|
753
|
+
if (!groupName) return
|
|
754
|
+
curStateRef.group!.emit(groupName, {
|
|
755
|
+
pseudo: state,
|
|
756
|
+
layout: curStateRef.group?.layout,
|
|
757
|
+
})
|
|
758
|
+
const groupContextState = componentContext?.groups
|
|
759
|
+
if (groupContextState) {
|
|
760
|
+
// and mutate the current since its concurrent safe (children throw it in useState on mount)
|
|
761
|
+
const next = {
|
|
762
|
+
...groupContextState[groupName],
|
|
763
|
+
...state,
|
|
764
|
+
}
|
|
765
|
+
groupContextState[groupName] = next
|
|
766
|
+
}
|
|
767
|
+
}, [groupName, state])
|
|
768
|
+
|
|
750
769
|
// if its a group its gotta listen for pseudos to emit them to children
|
|
751
770
|
|
|
752
771
|
const runtimePressStyle = !disabled && noClass && pseudos?.pressStyle
|
|
@@ -1042,7 +1061,7 @@ export function createComponent<
|
|
|
1042
1061
|
} satisfies ComponentContextI['groups']
|
|
1043
1062
|
}, [groupName])
|
|
1044
1063
|
|
|
1045
|
-
if (
|
|
1064
|
+
if ('group' in props || propsIn.focusWithinStyle) {
|
|
1046
1065
|
content = (
|
|
1047
1066
|
<ComponentContext.Provider
|
|
1048
1067
|
{...componentContext}
|
|
@@ -8,8 +8,7 @@ export function createShallowSetState<State extends Object>(
|
|
|
8
8
|
setter: React.Dispatch<React.SetStateAction<State>>,
|
|
9
9
|
onlyAllow?: string[],
|
|
10
10
|
transition?: boolean,
|
|
11
|
-
debugIn?: DebugProp
|
|
12
|
-
callback?: (nextState: Record<string, any>) => void
|
|
11
|
+
debugIn?: DebugProp
|
|
13
12
|
) {
|
|
14
13
|
// this must be memoized or it ruins performance in components
|
|
15
14
|
return useCallback(
|
|
@@ -17,13 +16,11 @@ export function createShallowSetState<State extends Object>(
|
|
|
17
16
|
const wrap = transition ? startTransition : callImmediate
|
|
18
17
|
wrap(() => {
|
|
19
18
|
setter((prev) => {
|
|
20
|
-
|
|
21
|
-
callback?.(out)
|
|
22
|
-
return out
|
|
19
|
+
return mergeIfNotShallowEqual(prev, next, onlyAllow, debugIn)
|
|
23
20
|
})
|
|
24
21
|
})
|
|
25
22
|
},
|
|
26
|
-
[setter, onlyAllow ? onlyAllow.join('') : '', transition, debugIn
|
|
23
|
+
[setter, onlyAllow ? onlyAllow.join('') : '', transition, debugIn]
|
|
27
24
|
)
|
|
28
25
|
}
|
|
29
26
|
|
|
@@ -895,6 +895,7 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
895
895
|
|
|
896
896
|
// $group-x
|
|
897
897
|
const groupContext = context?.groups.state[groupName]
|
|
898
|
+
|
|
898
899
|
if (!groupContext) {
|
|
899
900
|
if (process.env.NODE_ENV === 'development' && debug) {
|
|
900
901
|
log(`No parent with group prop, skipping styles: ${groupName}`)
|
|
@@ -911,10 +912,12 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
911
912
|
mediaGroups.add(groupMediaKey)
|
|
912
913
|
const mediaState = componentGroupState?.media
|
|
913
914
|
let isActive = mediaState?.[groupMediaKey]
|
|
915
|
+
|
|
914
916
|
// use parent styles if width and height hardcoded we can do an inline media match and avoid double render
|
|
915
917
|
if (!mediaState && groupContext.layout) {
|
|
916
918
|
isActive = mediaKeyMatch(groupMediaKey, groupContext.layout)
|
|
917
919
|
}
|
|
920
|
+
|
|
918
921
|
if (process.env.NODE_ENV === 'development' && debug === 'verbose') {
|
|
919
922
|
log(` 🏘️ GROUP media ${groupMediaKey} active? ${isActive}`)
|
|
920
923
|
}
|
|
@@ -937,8 +940,10 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
937
940
|
// fallback to context initially
|
|
938
941
|
context.groups.state[groupName]
|
|
939
942
|
).pseudo
|
|
943
|
+
|
|
940
944
|
const isActive = componentGroupPseudoState?.[groupPseudoKey]
|
|
941
945
|
const priority = pseudoPriorities[groupPseudoKey]
|
|
946
|
+
|
|
942
947
|
if (process.env.NODE_ENV === 'development' && debug === 'verbose') {
|
|
943
948
|
log(
|
|
944
949
|
` 🏘️ GROUP pseudo ${groupMediaKey} active? ${isActive}, priority ${priority}`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { mergeIfNotShallowEqual } from './createShallowSetState'
|
|
2
1
|
import { getMediaState } from '../hooks/useMedia'
|
|
3
|
-
import type {
|
|
2
|
+
import type { ComponentContextI, GroupState, TamaguiComponentState } from '../types'
|
|
3
|
+
import { mergeIfNotShallowEqual } from './createShallowSetState'
|
|
4
4
|
|
|
5
5
|
export const subscribeToContextGroup = ({
|
|
6
6
|
setStateShallow,
|
|
@@ -17,25 +17,25 @@ export const subscribeToContextGroup = ({
|
|
|
17
17
|
}) => {
|
|
18
18
|
// parent group pseudo listening
|
|
19
19
|
if (pseudoGroups || mediaGroups) {
|
|
20
|
-
const current = {
|
|
21
|
-
pseudo: {},
|
|
22
|
-
media: {},
|
|
23
|
-
} satisfies GroupState
|
|
24
|
-
|
|
25
20
|
if (process.env.NODE_ENV === 'development' && !componentContext.groups) {
|
|
26
21
|
console.debug(`No context group found`)
|
|
27
22
|
}
|
|
28
23
|
|
|
29
24
|
return componentContext.groups?.subscribe?.((name, { layout, pseudo }) => {
|
|
25
|
+
const current: GroupState = state.group?.[name] || {
|
|
26
|
+
pseudo: {},
|
|
27
|
+
media: {},
|
|
28
|
+
}
|
|
29
|
+
|
|
30
30
|
if (pseudo && pseudoGroups?.has(String(name))) {
|
|
31
31
|
// we emit a partial so merge it + change reference so mergeIfNotShallowEqual runs
|
|
32
|
-
Object.assign(current.pseudo
|
|
32
|
+
Object.assign(current.pseudo!, pseudo)
|
|
33
33
|
persist()
|
|
34
34
|
} else if (layout && mediaGroups) {
|
|
35
35
|
const mediaState = getMediaState(mediaGroups, layout)
|
|
36
36
|
const next = mergeIfNotShallowEqual(current.media, mediaState)
|
|
37
37
|
if (next !== current.media) {
|
|
38
|
-
Object.assign(current.media
|
|
38
|
+
Object.assign(current.media!, next)
|
|
39
39
|
persist()
|
|
40
40
|
}
|
|
41
41
|
}
|
|
@@ -23,7 +23,7 @@ import type {
|
|
|
23
23
|
|
|
24
24
|
export const useComponentState = (
|
|
25
25
|
props: StackProps | TextProps | Record<string, any>,
|
|
26
|
-
{ animationDriver
|
|
26
|
+
{ animationDriver }: ComponentContextI,
|
|
27
27
|
staticConfig: StaticConfig,
|
|
28
28
|
config: TamaguiInternalConfig
|
|
29
29
|
) => {
|
|
@@ -134,34 +134,12 @@ export const useComponentState = (
|
|
|
134
134
|
}
|
|
135
135
|
|
|
136
136
|
const groupName = props.group as any as string
|
|
137
|
-
const groupContextState = groups?.state
|
|
138
|
-
|
|
139
|
-
const setStateWrapper = useMemo(():
|
|
140
|
-
| undefined
|
|
141
|
-
| ((nextState: Record<string, any>) => void) => {
|
|
142
|
-
if (!groupContextState) return
|
|
143
|
-
if (groupName) {
|
|
144
|
-
// when we set state we also set our group state and emit an event for children listening:
|
|
145
|
-
return (state) => {
|
|
146
|
-
curStateRef.group!.emit(groupName, {
|
|
147
|
-
pseudo: state,
|
|
148
|
-
})
|
|
149
|
-
// and mutate the current since its concurrent safe (children throw it in useState on mount)
|
|
150
|
-
const next = {
|
|
151
|
-
...groupContextState[groupName],
|
|
152
|
-
...state,
|
|
153
|
-
}
|
|
154
|
-
groupContextState[groupName] = next
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
}, [groupContextState, curStateRef, groupName])
|
|
158
137
|
|
|
159
138
|
let setStateShallow = createShallowSetState(
|
|
160
139
|
setState,
|
|
161
140
|
disabled ? ['disabled'] : undefined,
|
|
162
141
|
false,
|
|
163
|
-
props.debug
|
|
164
|
-
setStateWrapper
|
|
142
|
+
props.debug
|
|
165
143
|
)
|
|
166
144
|
|
|
167
145
|
// set enter/exit variants onto our new props object
|
package/src/types.tsx
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createComponent.d.ts","sourceRoot":"","sources":["../src/createComponent.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAoBzB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAG/E,OAAO,KAAK,EAEV,SAAS,EAGT,cAAc,EACd,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAElB,YAAY,EAEZ,gBAAgB,EAChB,cAAc,EAMf,MAAM,SAAS,CAAA;AAYhB,KAAK,iBAAiB,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC,CAAA;AAEpF,eAAO,MAAM,kBAAkB,wBAA+B,CAAA;AAuF9D,wBAAgB,eAAe,CAC7B,kBAAkB,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,EACnD,GAAG,SAAS,cAAc,GAAG,cAAc,EAC3C,SAAS,GAAG,KAAK,EACjB,UAAU,SAAS,MAAM,GAAG,KAAK,EACjC,YAAY,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"createComponent.d.ts","sourceRoot":"","sources":["../src/createComponent.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAoBzB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAG/E,OAAO,KAAK,EAEV,SAAS,EAGT,cAAc,EACd,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAElB,YAAY,EAEZ,gBAAgB,EAChB,cAAc,EAMf,MAAM,SAAS,CAAA;AAYhB,KAAK,iBAAiB,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC,CAAA;AAEpF,eAAO,MAAM,kBAAkB,wBAA+B,CAAA;AAuF9D,wBAAgB,eAAe,CAC7B,kBAAkB,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,EACnD,GAAG,SAAS,cAAc,GAAG,cAAc,EAC3C,SAAS,GAAG,KAAK,EACjB,UAAU,SAAS,MAAM,GAAG,KAAK,EACjC,YAAY,EAAE,YAAY,wEAolC3B;AAoBD,wBAAgB,QAAQ,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,OAEjD;yBAFe,QAAQ;;;AAkBxB,eAAO,MAAM,MAAM,yFA0CjB,CAAA;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC5B,SAAS,CAAC,EAAE,cAAc,GAAG,OAAO,CAAA;IACpC,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB,CAAA;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,mBAiGxD"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
2
|
import type { DebugProp } from '../types';
|
|
3
|
-
export declare function createShallowSetState<State extends Object>(setter: React.Dispatch<React.SetStateAction<State>>, onlyAllow?: string[], transition?: boolean, debugIn?: DebugProp
|
|
3
|
+
export declare function createShallowSetState<State extends Object>(setter: React.Dispatch<React.SetStateAction<State>>, onlyAllow?: string[], transition?: boolean, debugIn?: DebugProp): (next?: Partial<State>) => void;
|
|
4
4
|
export declare function mergeIfNotShallowEqual(prev: any, next: any, onlyAllow?: string[], debug?: DebugProp): any;
|
|
5
5
|
export declare function isEqualShallow(prev: any, next: any): boolean;
|
|
6
6
|
//# sourceMappingURL=createShallowSetState.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createShallowSetState.d.ts","sourceRoot":"","sources":["../../src/helpers/createShallowSetState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAKzC,wBAAgB,qBAAqB,CAAC,KAAK,SAAS,MAAM,EACxD,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EACnD,SAAS,CAAC,EAAE,MAAM,EAAE,EACpB,UAAU,CAAC,EAAE,OAAO,EACpB,OAAO,CAAC,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"createShallowSetState.d.ts","sourceRoot":"","sources":["../../src/helpers/createShallowSetState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAKzC,wBAAgB,qBAAqB,CAAC,KAAK,SAAS,MAAM,EACxD,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EACnD,SAAS,CAAC,EAAE,MAAM,EAAE,EACpB,UAAU,CAAC,EAAE,OAAO,EACpB,OAAO,CAAC,EAAE,SAAS,WAIT,OAAO,CAAC,KAAK,CAAC,UAUzB;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,GAAG,EACT,IAAI,EAAE,GAAG,EACT,SAAS,CAAC,EAAE,MAAM,EAAE,EACpB,KAAK,CAAC,EAAE,SAAS,OAyBlB;AAED,wBAAgB,cAAc,CAAC,IAAI,KAAA,EAAE,IAAI,KAAA,WAOxC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSplitStyles.d.ts","sourceRoot":"","sources":["../../src/helpers/getSplitStyles.tsx"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAA;AAChF,OAAO,KAAK,EAEV,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,aAAa,EAOb,eAAe,EACf,YAAY,EAGZ,SAAS,EACT,WAAW,EAEZ,MAAM,UAAU,CAAA;AAiBjB,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AAE3D,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AAMhE,KAAK,aAAa,GAAG,CACnB,KAAK,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC7B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,qBAAqB,EACrC,UAAU,EAAE,eAAe,EAC3B,iBAAiB,CAAC,EAAE,cAAc,GAAG,IAAI,EACzC,OAAO,CAAC,EAAE,iBAAiB,EAE3B,WAAW,CAAC,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE,SAAS,KACd,cAAc,CAAA;AAEnB,eAAO,MAAM,UAAU,MAAM,CAAA;AA+B7B,eAAO,MAAM,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"getSplitStyles.d.ts","sourceRoot":"","sources":["../../src/helpers/getSplitStyles.tsx"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAA;AAChF,OAAO,KAAK,EAEV,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,aAAa,EAOb,eAAe,EACf,YAAY,EAGZ,SAAS,EACT,WAAW,EAEZ,MAAM,UAAU,CAAA;AAiBjB,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AAE3D,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AAMhE,KAAK,aAAa,GAAG,CACnB,KAAK,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC7B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,qBAAqB,EACrC,UAAU,EAAE,eAAe,EAC3B,iBAAiB,CAAC,EAAE,cAAc,GAAG,IAAI,EACzC,OAAO,CAAC,EAAE,iBAAiB,EAE3B,WAAW,CAAC,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE,SAAS,KACd,cAAc,CAAA;AAEnB,eAAO,MAAM,UAAU,MAAM,CAAA;AA+B7B,eAAO,MAAM,cAAc,EAAE,aA8sC5B,CAAA;AAuCD,eAAO,MAAM,WAAW,eACV,aAAa,UACjB,MAAM,WACL,MAAM,wBACO,OAAO,KAC5B,SA6CF,CAAA;AAQD,eAAO,MAAM,cAAc,EAAE,aAa5B,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ComponentContextI, TamaguiComponentState } from '../types';
|
|
2
2
|
export declare const subscribeToContextGroup: ({ setStateShallow, pseudoGroups, mediaGroups, componentContext, state, }: {
|
|
3
3
|
setStateShallow: (next?: Partial<TamaguiComponentState> | undefined) => void;
|
|
4
4
|
pseudoGroups?: Set<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscribeToContextGroup.d.ts","sourceRoot":"","sources":["../../src/helpers/subscribeToContextGroup.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"subscribeToContextGroup.d.ts","sourceRoot":"","sources":["../../src/helpers/subscribeToContextGroup.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAc,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAGpF,eAAO,MAAM,uBAAuB,6EAMjC;IACD,eAAe,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,SAAS,KAAK,IAAI,CAAA;IAC5E,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACzB,gBAAgB,EAAE,iBAAiB,CAAA;IACnC,KAAK,EAAE,qBAAqB,CAAA;CAC7B,6CAqCA,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ComponentContextI, StackProps, StaticConfig, TamaguiComponentState, TamaguiComponentStateRef, TamaguiInternalConfig, TextProps } from '../types';
|
|
2
|
-
export declare const useComponentState: (props: StackProps | TextProps | Record<string, any>, { animationDriver
|
|
2
|
+
export declare const useComponentState: (props: StackProps | TextProps | Record<string, any>, { animationDriver }: ComponentContextI, staticConfig: StaticConfig, config: TamaguiInternalConfig) => {
|
|
3
3
|
curStateRef: TamaguiComponentStateRef;
|
|
4
4
|
disabled: any;
|
|
5
5
|
groupName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useComponentState.d.ts","sourceRoot":"","sources":["../../src/hooks/useComponentState.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,iBAAiB,EAEjB,UAAU,EACV,YAAY,EACZ,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,SAAS,EAEV,MAAM,UAAU,CAAA;AAEjB,eAAO,MAAM,iBAAiB,UACrB,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC
|
|
1
|
+
{"version":3,"file":"useComponentState.d.ts","sourceRoot":"","sources":["../../src/hooks/useComponentState.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,iBAAiB,EAEjB,UAAU,EACV,YAAY,EACZ,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,SAAS,EAEV,MAAM,UAAU,CAAA;AAEjB,eAAO,MAAM,iBAAiB,UACrB,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,uBAC9B,iBAAiB,gBACxB,YAAY,UAClB,qBAAqB;;;;;;;;;;;;;;;;;;;CAgN9B,CAAA"}
|
package/types/types.d.ts
CHANGED