@tamagui/animate-presence 1.110.4 → 1.111.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/dist/cjs/AnimatePresence.native.js +5 -29
- package/dist/cjs/AnimatePresence.native.js.map +1 -1
- package/dist/cjs/PresenceChild.native.js +1 -1
- package/dist/cjs/PresenceChild.native.js.map +1 -1
- package/dist/esm/AnimatePresence.native.js +5 -28
- package/dist/esm/AnimatePresence.native.js.map +1 -1
- package/dist/esm/AnimatePresence.native.mjs +105 -0
- package/dist/esm/AnimatePresence.native.mjs.map +1 -0
- package/dist/esm/LayoutGroupContext.native.mjs +4 -0
- package/dist/esm/LayoutGroupContext.native.mjs.map +1 -0
- package/dist/esm/PresenceChild.native.js +3 -3
- package/dist/esm/PresenceChild.native.js.map +1 -1
- package/dist/esm/PresenceChild.native.mjs +79 -0
- package/dist/esm/PresenceChild.native.mjs.map +1 -0
- package/dist/esm/index.native.mjs +5 -0
- package/dist/esm/index.native.mjs.map +1 -0
- package/dist/esm/types.native.mjs +2 -0
- package/dist/esm/types.native.mjs.map +1 -0
- package/package.json +7 -7
|
@@ -18,33 +18,7 @@ __export(AnimatePresence_exports, {
|
|
|
18
18
|
AnimatePresence: () => AnimatePresence
|
|
19
19
|
});
|
|
20
20
|
module.exports = __toCommonJS(AnimatePresence_exports);
|
|
21
|
-
var import_jsx_runtime = require("react/jsx-runtime"), import_use_force_update = require("@tamagui/use-force-update"), import_react = require("react"), import_LayoutGroupContext = require("./LayoutGroupContext"), import_PresenceChild = require("./PresenceChild")
|
|
22
|
-
function _array_like_to_array(arr, len) {
|
|
23
|
-
(len == null || len > arr.length) && (len = arr.length);
|
|
24
|
-
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
25
|
-
return arr2;
|
|
26
|
-
}
|
|
27
|
-
function _array_without_holes(arr) {
|
|
28
|
-
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
29
|
-
}
|
|
30
|
-
function _iterable_to_array(iter) {
|
|
31
|
-
if (typeof Symbol < "u" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
32
|
-
}
|
|
33
|
-
function _non_iterable_spread() {
|
|
34
|
-
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
35
|
-
}
|
|
36
|
-
function _to_consumable_array(arr) {
|
|
37
|
-
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
38
|
-
}
|
|
39
|
-
function _unsupported_iterable_to_array(o, minLen) {
|
|
40
|
-
if (o) {
|
|
41
|
-
if (typeof o == "string") return _array_like_to_array(o, minLen);
|
|
42
|
-
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
43
|
-
if (n === "Object" && o.constructor && (n = o.constructor.name), n === "Map" || n === "Set") return Array.from(n);
|
|
44
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
var getChildKey = function(child) {
|
|
21
|
+
var import_jsx_runtime = require("react/jsx-runtime"), import_use_force_update = require("@tamagui/use-force-update"), import_react = require("react"), import_LayoutGroupContext = require("./LayoutGroupContext"), import_PresenceChild = require("./PresenceChild"), getChildKey = function(child) {
|
|
48
22
|
return child.key || "";
|
|
49
23
|
};
|
|
50
24
|
function updateChildLookup(children, allChildren) {
|
|
@@ -60,7 +34,7 @@ function onlyElements(children) {
|
|
|
60
34
|
}), filtered;
|
|
61
35
|
}
|
|
62
36
|
var AnimatePresence = function(param) {
|
|
63
|
-
var
|
|
37
|
+
var { children, enterVariant, exitVariant, enterExitVariant, initial = !0, onExitComplete, exitBeforeEnter, presenceAffectsLayout = !0, custom } = param, _useContext_forceRender, forceRender = (_useContext_forceRender = (0, import_react.useContext)(import_LayoutGroupContext.LayoutGroupContext).forceRender) !== null && _useContext_forceRender !== void 0 ? _useContext_forceRender : (0, import_use_force_update.useForceUpdate)(), filteredChildren = onlyElements(children), presentChildren = (0, import_react.useRef)(filteredChildren), allChildren = (0, import_react.useRef)(/* @__PURE__ */ new Map()).current, exiting = (0, import_react.useRef)(/* @__PURE__ */ new Set()).current;
|
|
64
38
|
updateChildLookup(filteredChildren, allChildren);
|
|
65
39
|
var isInitialRender = (0, import_react.useRef)(!0);
|
|
66
40
|
if (isInitialRender.current)
|
|
@@ -78,7 +52,9 @@ var AnimatePresence = function(param) {
|
|
|
78
52
|
}, getChildKey(child));
|
|
79
53
|
})
|
|
80
54
|
});
|
|
81
|
-
for (var childrenToRender =
|
|
55
|
+
for (var childrenToRender = [
|
|
56
|
+
...filteredChildren
|
|
57
|
+
], presentKeys = presentChildren.current.map(getChildKey), targetKeys = filteredChildren.map(getChildKey), numPresent = presentKeys.length, i = 0; i < numPresent; i++) {
|
|
82
58
|
var key = presentKeys[i];
|
|
83
59
|
targetKeys.indexOf(key) === -1 ? exiting.add(key) : exiting.delete(key);
|
|
84
60
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/Users/n8/tamagui/code/ui/animate-presence/src/AnimatePresence.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;uDAAA,0BAA+B,sCAG/B,eAA2E,kBAE3E,4BAAmC,iCACnC,uBAA8B
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["getChildKey", "child", "key", "updateChildLookup", "children", "allChildren", "forEach", "set", "onlyElements", "filtered", "Children", "isValidElement", "push", "AnimatePresence", "enterVariant", "exitVariant", "enterExitVariant", "initial", "onExitComplete", "exitBeforeEnter", "presenceAffectsLayout", "custom", "useContext", "forceRender", "LayoutGroupContext", "useForceUpdate", "filteredChildren", "presentChildren", "useRef", "Map", "current", "exiting", "Set", "isInitialRender", "_jsx", "_Fragment", "map", "PresenceChild", "isPresent", "undefined", "childrenToRender", "presentKeys", "targetKeys", "numPresent", "length", "i", "indexOf", "add", "delete", "size", "get", "insertionIndex", "onExit", "removeIndex", "findIndex", "presentChild", "splice", "exitingComponent", "has", "cloneElement", "displayName"]
|
|
6
6
|
}
|
|
@@ -27,7 +27,7 @@ __export(PresenceChild_exports, {
|
|
|
27
27
|
});
|
|
28
28
|
module.exports = __toCommonJS(PresenceChild_exports);
|
|
29
29
|
var import_jsx_runtime = require("react/jsx-runtime"), import_use_constant = require("@tamagui/use-constant"), import_use_presence = require("@tamagui/use-presence"), React = __toESM(require("react")), import_react = require("react"), PresenceChild = /* @__PURE__ */ React.memo(function(param) {
|
|
30
|
-
var
|
|
30
|
+
var { children, initial, isPresent, onExitComplete, exitVariant, enterVariant, enterExitVariant, presenceAffectsLayout, custom } = param, presenceChildren = (0, import_use_constant.useConstant)(newChildrenMap), id = (0, import_react.useId)() || "", context = React.useMemo(
|
|
31
31
|
function() {
|
|
32
32
|
return {
|
|
33
33
|
id,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/Users/n8/tamagui/code/ui/animate-presence/src/PresenceChild.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;uDAAA,sBAA4B,kCAC5B,sBAAgC,kCAEhC,QAAuB,2BACvB,eAAsB,kBAiBTA,gBAAgBC,sBAAMC,KACjC,SAAA,OAAA;
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;uDAAA,sBAA4B,kCAC5B,sBAAgC,kCAEhC,QAAuB,2BACvB,eAAsB,kBAiBTA,gBAAgBC,sBAAMC,KACjC,SAAA,OAAA;MAAC,EACCC,UACAC,SACAC,WACAC,gBACAC,aACAC,cACAC,kBACAC,uBACAC,OAAM,IACa,OACbC,uBAAmBC,iCAAYC,cAAAA,GAC/BC,SAAKC,oBAAAA,KAAW,IAEhBC,UAAUhB,MAAMiB;IACpB,WAAA;AACE,aAAO;QACLH;QACAX;QACAC;QACAM;QACAJ;QACAC;QACAC;QACAH,gBAAgB,WAAA;AACdM,2BAAiBO,IAAIJ,IAAI,EAAA;cACpB,4BAAA,IAAA,oBAAA,IAAA,iBAAA;;AAAL,qBAAK,YAAoBH,iBAAiBQ,OAAM,EAAA,OAAA,QAAA,EAAA,GAA3C,OAAA,EAAA,6BAAA,QAAA,UAAA,KAAA,GAAA,OAAA,4BAAA,IAA+C;AAA/C,kBAAMC,aAAN,MAAA;AACH,kBAAI,CAACA;AACH;YAEJ;;AAJK,gCAAA,IAAA,iBAAA;;;eAAA,6BAAA,UAAA,UAAA,QAAA,UAAA,OAAA;;kBAAA;sBAAA;;;AAKLf,4BAAAA,QAAAA,eAAAA;QACF;QACAgB,UAAU,WAAA;AACRV,kCAAiBO,IAAIJ,IAAI,EAAA,GAClB,WAAA;mBAAMH,iBAAiBW,OAAOR,EAAAA;;QACvC;MACF;IACF;;;;;;;IAQAL,wBAAwBc,SAAY;MAACnB;MAAWE;MAAaC;;EAAa;AAG5EP,eAAMiB,QAAQ,WAAA;AACZN,qBAAiBa,QAAQ,SAACC,GAAGC,KAAAA;aAAQf,iBAAiBO,IAAIQ,KAAK,EAAA;;EACjE,GAAG;IAACtB;GAAU,GAMdJ,MAAM2B,UAAU,WAAA;AACd,KAACvB,aAAa,CAACO,iBAAiBiB,SAAQvB,kBAAAA,QAAAA,eAAAA;EAC1C,GAAG;IAACD;GAAU,GAEP,uCAAAyB,KAACC,oCAAgBC,UAAQ;IAACC,OAAOhB;;;AAC1C,CAAA;AAGF,SAASH,iBAAAA;AACP,SAAO,oBAAIoB,IAAAA;AACb;",
|
|
5
5
|
"names": ["PresenceChild", "React", "memo", "children", "initial", "isPresent", "onExitComplete", "exitVariant", "enterVariant", "enterExitVariant", "presenceAffectsLayout", "custom", "presenceChildren", "useConstant", "newChildrenMap", "id", "useId", "context", "useMemo", "set", "values", "isComplete", "register", "delete", "undefined", "forEach", "_", "key", "useEffect", "size", "_jsx", "PresenceContext", "Provider", "value", "Map"]
|
|
6
6
|
}
|
|
@@ -3,31 +3,6 @@ import { useForceUpdate } from "@tamagui/use-force-update";
|
|
|
3
3
|
import { Children, cloneElement, isValidElement, useContext, useRef } from "react";
|
|
4
4
|
import { LayoutGroupContext } from "./LayoutGroupContext";
|
|
5
5
|
import { PresenceChild } from "./PresenceChild";
|
|
6
|
-
function _array_like_to_array(arr, len) {
|
|
7
|
-
(len == null || len > arr.length) && (len = arr.length);
|
|
8
|
-
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
9
|
-
return arr2;
|
|
10
|
-
}
|
|
11
|
-
function _array_without_holes(arr) {
|
|
12
|
-
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
13
|
-
}
|
|
14
|
-
function _iterable_to_array(iter) {
|
|
15
|
-
if (typeof Symbol < "u" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
16
|
-
}
|
|
17
|
-
function _non_iterable_spread() {
|
|
18
|
-
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
19
|
-
}
|
|
20
|
-
function _to_consumable_array(arr) {
|
|
21
|
-
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
22
|
-
}
|
|
23
|
-
function _unsupported_iterable_to_array(o, minLen) {
|
|
24
|
-
if (o) {
|
|
25
|
-
if (typeof o == "string") return _array_like_to_array(o, minLen);
|
|
26
|
-
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
27
|
-
if (n === "Object" && o.constructor && (n = o.constructor.name), n === "Map" || n === "Set") return Array.from(n);
|
|
28
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
6
|
var getChildKey = function(child) {
|
|
32
7
|
return child.key || "";
|
|
33
8
|
};
|
|
@@ -44,7 +19,7 @@ function onlyElements(children) {
|
|
|
44
19
|
}), filtered;
|
|
45
20
|
}
|
|
46
21
|
var AnimatePresence = function(param) {
|
|
47
|
-
var
|
|
22
|
+
var { children, enterVariant, exitVariant, enterExitVariant, initial = !0, onExitComplete, exitBeforeEnter, presenceAffectsLayout = !0, custom } = param, _useContext_forceRender, forceRender = (_useContext_forceRender = useContext(LayoutGroupContext).forceRender) !== null && _useContext_forceRender !== void 0 ? _useContext_forceRender : useForceUpdate(), filteredChildren = onlyElements(children), presentChildren = useRef(filteredChildren), allChildren = useRef(/* @__PURE__ */ new Map()).current, exiting = useRef(/* @__PURE__ */ new Set()).current;
|
|
48
23
|
updateChildLookup(filteredChildren, allChildren);
|
|
49
24
|
var isInitialRender = useRef(!0);
|
|
50
25
|
if (isInitialRender.current)
|
|
@@ -62,7 +37,9 @@ var AnimatePresence = function(param) {
|
|
|
62
37
|
}, getChildKey(child));
|
|
63
38
|
})
|
|
64
39
|
});
|
|
65
|
-
for (var childrenToRender =
|
|
40
|
+
for (var childrenToRender = [
|
|
41
|
+
...filteredChildren
|
|
42
|
+
], presentKeys = presentChildren.current.map(getChildKey), targetKeys = filteredChildren.map(getChildKey), numPresent = presentKeys.length, i = 0; i < numPresent; i++) {
|
|
66
43
|
var key = presentKeys[i];
|
|
67
44
|
targetKeys.indexOf(key) === -1 ? exiting.add(key) : exiting.delete(key);
|
|
68
45
|
}
|
|
@@ -75,7 +52,7 @@ var AnimatePresence = function(param) {
|
|
|
75
52
|
var removeIndex = presentChildren.current.findIndex(function(presentChild) {
|
|
76
53
|
return presentChild.key === key2;
|
|
77
54
|
});
|
|
78
|
-
presentChildren.current.splice(removeIndex, 1), exiting.size || (presentChildren.current = filteredChildren, forceRender(), onExitComplete
|
|
55
|
+
presentChildren.current.splice(removeIndex, 1), exiting.size || (presentChildren.current = filteredChildren, forceRender(), onExitComplete?.());
|
|
79
56
|
}, exitingComponent = /* @__PURE__ */ _jsx(PresenceChild, {
|
|
80
57
|
isPresent: !1,
|
|
81
58
|
onExitComplete: onExit,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/Users/n8/tamagui/code/ui/animate-presence/src/AnimatePresence.tsx"],
|
|
4
|
-
"mappings": ";AAAA,SAASA,sBAAsB;AAG/B,SAASC,UAAUC,cAAcC,gBAAgBC,YAAYC,cAAc;AAE3E,SAASC,0BAA0B;AACnC,SAASC,qBAAqB
|
|
4
|
+
"mappings": ";AAAA,SAASA,sBAAsB;AAG/B,SAASC,UAAUC,cAAcC,gBAAgBC,YAAYC,cAAc;AAE3E,SAASC,0BAA0B;AACnC,SAASC,qBAAqB;AAK9B,IAAMC,cAAc,SAACC,OAAAA;SAA2CA,MAAMC,OAAO;;AAE7E,SAASC,kBACPC,UACAC,aAAiD;AAEjDD,WAASE,QAAQ,SAACL,OAAAA;AAChB,QAAMC,MAAMF,YAAYC,KAAAA;AACxBI,gBAAYE,IAAIL,KAAKD,KAAAA;EACvB,CAAA;AACF;AAEA,SAASO,aAAaJ,UAAmB;AACvC,MAAMK,WAAgC,CAAA;AAEtChB,kBAASa,QAAQF,UAAU,SAACH,OAAAA;AAC1B,IAAIN,+BAAeM,KAAAA,KAAQQ,SAASC,KAAKT,KAAAA;EAC3C,CAAA,GACOQ;AACT;AAEO,IAAME,kBAET,SAAA,OAAA;MAAC,EACHP,UACAQ,cACAC,aACAC,kBACAC,UAAU,IACVC,gBACAC,iBACAC,wBAAwB,IACxBC,OAAM,IACP,OAGmBvB,yBAAdwB,eAAcxB,0BAAAA,WAAWE,kBAAAA,EAAoBsB,iBAAW,QAA1CxB,4BAAAA,SAAAA,0BAA8CJ,eAAAA,GAG1D6B,mBAAmBb,aAAaJ,QAAAA,GAIhCkB,kBAAkBzB,OAAOwB,gBAAAA,GAGzBhB,cAAcR,OAAO,oBAAI0B,IAAAA,CAAAA,EAAwCC,SAEjEC,UAAU5B,OAAO,oBAAI6B,IAAAA,CAAAA,EAAqBF;AAChDrB,oBAAkBkB,kBAAkBhB,WAAAA;AAIpC,MAAMsB,kBAAkB9B,OAAO,EAAA;AAE/B,MAAI8B,gBAAgBH;AAClBG,2BAAgBH,UAAU,IAExB,qBAAA,WAAA;gBACGH,iBAAiBO,IAAI,SAAC3B,OAAAA;eACrB,qBAACF,eAAAA;UAEC8B,WAAS;UACTf;UACAD;UACAD;UACAG,SAASA,UAAUe,SAAY;UAC/BZ;UACAC;oBAEClB;WATID,YAAYC,KAAAA,CAAAA;;;AAyB3B,WATI8B,mBAAmB;OAAIV;KAIrBW,cAAcV,gBAAgBE,QAAQI,IAAI5B,WAAAA,GAC1CiC,aAAaZ,iBAAiBO,IAAI5B,WAAAA,GAGlCkC,aAAaF,YAAYG,QACtBC,IAAI,GAAGA,IAAIF,YAAYE,KAAK;AACnC,QAAMlC,MAAM8B,YAAYI,CAAAA;AACxB,IAAIH,WAAWI,QAAQnC,GAAAA,MAAS,KAC9BuB,QAAQa,IAAIpC,GAAAA,IAGZuB,QAAQc,OAAOrC,GAAAA;EAEnB;AAIA,SAAIe,mBAAmBQ,QAAQe,SAC7BT,mBAAmB,CAAA,IAKrBN,QAAQnB,QAAQ,SAACJ,MAAAA;AAEf,QAAI+B,WAAWI,QAAQnC,IAAAA,MAAS,IAEhC;UAAMD,QAAQI,YAAYoC,IAAIvC,IAAAA;AAC9B,UAAKD,OAEL;YAAMyC,iBAAiBV,YAAYK,QAAQnC,IAAAA,GAErCyC,SAAS,WAAA;AACbtC,sBAAYkC,OAAOrC,IAAAA,GACnBuB,QAAQc,OAAOrC,IAAAA;AACf,cAAM0C,cAActB,gBAAgBE,QAAQqB,UAC1C,SAACC,cAAAA;mBAAiBA,aAAa5C,QAAQA;;AAEzCoB,0BAAgBE,QAAQuB,OAAOH,aAAa,CAAA,GAEvCnB,QAAQe,SACXlB,gBAAgBE,UAAUH,kBAC1BD,YAAAA,GACAJ,iBAAAA;QAEJ,GAEMgC,mBACJ,qBAACjD,eAAAA;UAEC8B,WAAW;UACXb,gBAAgB2B;UAChBzB;UACAJ;UACAF;UACAC;UACAM;oBAEClB;WATID,YAAYC,KAAAA,CAAAA;AAarB8B,yBAAiBgB,OAAOL,gBAAgB,GAAGM,gBAAAA;;;EAC7C,CAAA,GAIAjB,mBAAmBA,iBAAiBH,IAAI,SAAC3B,OAAAA;AACvC,QAAMC,OAAMD,MAAMC;AAClB,WAAOuB,QAAQwB,IAAI/C,IAAAA,IACjBD,QAEA,qBAACF,eAAAA;MAEC8B,WAAS;MACThB;MACAD;MACAE;MACAI;MACAC;gBAEClB;OARID,YAAYC,KAAAA,CAAAA;EAWvB,CAAA,GAEAqB,gBAAgBE,UAAUO,kBAGxB,qBAAA,WAAA;cACGN,QAAQe,OACLT;;MAEAA,iBAAiBH,IAAI,SAAC3B,OAAAA;eAAUP,6BAAaO,KAAAA;;;;AAGvD;AAEAU,gBAAgBuC,cAAc;",
|
|
5
5
|
"names": ["useForceUpdate", "Children", "cloneElement", "isValidElement", "useContext", "useRef", "LayoutGroupContext", "PresenceChild", "getChildKey", "child", "key", "updateChildLookup", "children", "allChildren", "forEach", "set", "onlyElements", "filtered", "push", "AnimatePresence", "enterVariant", "exitVariant", "enterExitVariant", "initial", "onExitComplete", "exitBeforeEnter", "presenceAffectsLayout", "custom", "forceRender", "filteredChildren", "presentChildren", "Map", "current", "exiting", "Set", "isInitialRender", "map", "isPresent", "undefined", "childrenToRender", "presentKeys", "targetKeys", "numPresent", "length", "i", "indexOf", "add", "delete", "size", "get", "insertionIndex", "onExit", "removeIndex", "findIndex", "presentChild", "splice", "exitingComponent", "has", "displayName"]
|
|
6
6
|
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useForceUpdate } from "@tamagui/use-force-update";
|
|
3
|
+
import { Children, cloneElement, isValidElement, useContext, useRef } from "react";
|
|
4
|
+
import { LayoutGroupContext } from "./LayoutGroupContext.mjs";
|
|
5
|
+
import { PresenceChild } from "./PresenceChild.mjs";
|
|
6
|
+
var getChildKey = function (child) {
|
|
7
|
+
return child.key || "";
|
|
8
|
+
};
|
|
9
|
+
function updateChildLookup(children, allChildren) {
|
|
10
|
+
children.forEach(function (child) {
|
|
11
|
+
var key = getChildKey(child);
|
|
12
|
+
allChildren.set(key, child);
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
function onlyElements(children) {
|
|
16
|
+
var filtered = [];
|
|
17
|
+
return Children.forEach(children, function (child) {
|
|
18
|
+
/* @__PURE__ */isValidElement(child) && filtered.push(child);
|
|
19
|
+
}), filtered;
|
|
20
|
+
}
|
|
21
|
+
var AnimatePresence = function (param) {
|
|
22
|
+
var {
|
|
23
|
+
children,
|
|
24
|
+
enterVariant,
|
|
25
|
+
exitVariant,
|
|
26
|
+
enterExitVariant,
|
|
27
|
+
initial = !0,
|
|
28
|
+
onExitComplete,
|
|
29
|
+
exitBeforeEnter,
|
|
30
|
+
presenceAffectsLayout = !0,
|
|
31
|
+
custom
|
|
32
|
+
} = param,
|
|
33
|
+
_useContext_forceRender,
|
|
34
|
+
forceRender = (_useContext_forceRender = useContext(LayoutGroupContext).forceRender) !== null && _useContext_forceRender !== void 0 ? _useContext_forceRender : useForceUpdate(),
|
|
35
|
+
filteredChildren = onlyElements(children),
|
|
36
|
+
presentChildren = useRef(filteredChildren),
|
|
37
|
+
allChildren = useRef(/* @__PURE__ */new Map()).current,
|
|
38
|
+
exiting = useRef(/* @__PURE__ */new Set()).current;
|
|
39
|
+
updateChildLookup(filteredChildren, allChildren);
|
|
40
|
+
var isInitialRender = useRef(!0);
|
|
41
|
+
if (isInitialRender.current) return isInitialRender.current = !1, /* @__PURE__ */_jsx(_Fragment, {
|
|
42
|
+
children: filteredChildren.map(function (child) {
|
|
43
|
+
return /* @__PURE__ */_jsx(PresenceChild, {
|
|
44
|
+
isPresent: !0,
|
|
45
|
+
enterExitVariant,
|
|
46
|
+
exitVariant,
|
|
47
|
+
enterVariant,
|
|
48
|
+
initial: initial ? void 0 : !1,
|
|
49
|
+
presenceAffectsLayout,
|
|
50
|
+
custom,
|
|
51
|
+
children: child
|
|
52
|
+
}, getChildKey(child));
|
|
53
|
+
})
|
|
54
|
+
});
|
|
55
|
+
for (var childrenToRender = [...filteredChildren], presentKeys = presentChildren.current.map(getChildKey), targetKeys = filteredChildren.map(getChildKey), numPresent = presentKeys.length, i = 0; i < numPresent; i++) {
|
|
56
|
+
var key = presentKeys[i];
|
|
57
|
+
targetKeys.indexOf(key) === -1 ? exiting.add(key) : exiting.delete(key);
|
|
58
|
+
}
|
|
59
|
+
return exitBeforeEnter && exiting.size && (childrenToRender = []), exiting.forEach(function (key2) {
|
|
60
|
+
if (targetKeys.indexOf(key2) === -1) {
|
|
61
|
+
var child = allChildren.get(key2);
|
|
62
|
+
if (child) {
|
|
63
|
+
var insertionIndex = presentKeys.indexOf(key2),
|
|
64
|
+
onExit = function () {
|
|
65
|
+
allChildren.delete(key2), exiting.delete(key2);
|
|
66
|
+
var removeIndex = presentChildren.current.findIndex(function (presentChild) {
|
|
67
|
+
return presentChild.key === key2;
|
|
68
|
+
});
|
|
69
|
+
presentChildren.current.splice(removeIndex, 1), exiting.size || (presentChildren.current = filteredChildren, forceRender(), onExitComplete?.());
|
|
70
|
+
},
|
|
71
|
+
exitingComponent = /* @__PURE__ */_jsx(PresenceChild, {
|
|
72
|
+
isPresent: !1,
|
|
73
|
+
onExitComplete: onExit,
|
|
74
|
+
presenceAffectsLayout,
|
|
75
|
+
enterExitVariant,
|
|
76
|
+
enterVariant,
|
|
77
|
+
exitVariant,
|
|
78
|
+
custom,
|
|
79
|
+
children: child
|
|
80
|
+
}, getChildKey(child));
|
|
81
|
+
childrenToRender.splice(insertionIndex, 0, exitingComponent);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}), childrenToRender = childrenToRender.map(function (child) {
|
|
85
|
+
var key2 = child.key;
|
|
86
|
+
return exiting.has(key2) ? child : /* @__PURE__ */_jsx(PresenceChild, {
|
|
87
|
+
isPresent: !0,
|
|
88
|
+
exitVariant,
|
|
89
|
+
enterVariant,
|
|
90
|
+
enterExitVariant,
|
|
91
|
+
presenceAffectsLayout,
|
|
92
|
+
custom,
|
|
93
|
+
children: child
|
|
94
|
+
}, getChildKey(child));
|
|
95
|
+
}), presentChildren.current = childrenToRender, /* @__PURE__ */_jsx(_Fragment, {
|
|
96
|
+
children: exiting.size ? childrenToRender :
|
|
97
|
+
// biome-ignore lint/correctness/useJsxKeyInIterable: <explanation>
|
|
98
|
+
childrenToRender.map(function (child) {
|
|
99
|
+
return /* @__PURE__ */cloneElement(child);
|
|
100
|
+
})
|
|
101
|
+
});
|
|
102
|
+
};
|
|
103
|
+
AnimatePresence.displayName = "AnimatePresence";
|
|
104
|
+
export { AnimatePresence };
|
|
105
|
+
//# sourceMappingURL=AnimatePresence.native.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","Fragment","_Fragment","useForceUpdate","Children","cloneElement","isValidElement","useContext","useRef","LayoutGroupContext","PresenceChild","getChildKey","child","key","updateChildLookup","children","allChildren","forEach","set","onlyElements","filtered","push","AnimatePresence","param","enterVariant","exitVariant","enterExitVariant","initial","onExitComplete","exitBeforeEnter","presenceAffectsLayout","custom","_useContext_forceRender","forceRender","filteredChildren","presentChildren","Map","current","exiting","Set","isInitialRender","map","isPresent","childrenToRender","presentKeys","targetKeys","numPresent","length","i","indexOf","add","delete","size","key2","get","insertionIndex","onExit","removeIndex","findIndex","presentChild","splice","exitingComponent","has","displayName"],"sources":["../../src/AnimatePresence.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","LayoutGroupContext","createContext"],"sources":["../../src/LayoutGroupContext.tsx"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,KAAA,MAAW;AAOX,IAAAC,kBAAM,kBAA2BD,KAAA,CAAuCE,aAAE","ignoreList":[]}
|
|
@@ -4,7 +4,7 @@ import { PresenceContext } from "@tamagui/use-presence";
|
|
|
4
4
|
import * as React from "react";
|
|
5
5
|
import { useId } from "react";
|
|
6
6
|
var PresenceChild = /* @__PURE__ */ React.memo(function(param) {
|
|
7
|
-
var
|
|
7
|
+
var { children, initial, isPresent, onExitComplete, exitVariant, enterVariant, enterExitVariant, presenceAffectsLayout, custom } = param, presenceChildren = useConstant(newChildrenMap), id = useId() || "", context = React.useMemo(
|
|
8
8
|
function() {
|
|
9
9
|
return {
|
|
10
10
|
id,
|
|
@@ -33,7 +33,7 @@ var PresenceChild = /* @__PURE__ */ React.memo(function(param) {
|
|
|
33
33
|
throw _iteratorError;
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
onExitComplete
|
|
36
|
+
onExitComplete?.();
|
|
37
37
|
},
|
|
38
38
|
register: function() {
|
|
39
39
|
return presenceChildren.set(id, !1), function() {
|
|
@@ -61,7 +61,7 @@ var PresenceChild = /* @__PURE__ */ React.memo(function(param) {
|
|
|
61
61
|
}, [
|
|
62
62
|
isPresent
|
|
63
63
|
]), React.useEffect(function() {
|
|
64
|
-
!isPresent && !presenceChildren.size &&
|
|
64
|
+
!isPresent && !presenceChildren.size && onExitComplete?.();
|
|
65
65
|
}, [
|
|
66
66
|
isPresent
|
|
67
67
|
]), /* @__PURE__ */ _jsx(PresenceContext.Provider, {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/Users/n8/tamagui/code/ui/animate-presence/src/PresenceChild.tsx"],
|
|
4
|
-
"mappings": ";AAAA,SAASA,mBAAmB;AAC5B,SAASC,uBAAuB;AAEhC,YAAYC,WAAW;AACvB,SAASC,aAAa;AAiBf,IAAMC,gBAAgBF,sBAAMG,KACjC,SAAA,OAAA;
|
|
4
|
+
"mappings": ";AAAA,SAASA,mBAAmB;AAC5B,SAASC,uBAAuB;AAEhC,YAAYC,WAAW;AACvB,SAASC,aAAa;AAiBf,IAAMC,gBAAgBF,sBAAMG,KACjC,SAAA,OAAA;MAAC,EACCC,UACAC,SACAC,WACAC,gBACAC,aACAC,cACAC,kBACAC,uBACAC,OAAM,IACa,OACbC,mBAAmBf,YAAYgB,cAAAA,GAC/BC,KAAKd,MAAAA,KAAW,IAEhBe,UAAUhB,MAAMiB;IACpB,WAAA;AACE,aAAO;QACLF;QACAV;QACAC;QACAM;QACAJ;QACAC;QACAC;QACAH,gBAAgB,WAAA;AACdM,2BAAiBK,IAAIH,IAAI,EAAA;cACpB,4BAAA,IAAA,oBAAA,IAAA,iBAAA;;AAAL,qBAAK,YAAoBF,iBAAiBM,OAAM,EAAA,OAAA,QAAA,EAAA,GAA3C,OAAA,EAAA,6BAAA,QAAA,UAAA,KAAA,GAAA,OAAA,4BAAA,IAA+C;AAA/C,kBAAMC,aAAN,MAAA;AACH,kBAAI,CAACA;AACH;YAEJ;;AAJK,gCAAA,IAAA,iBAAA;;;eAAA,6BAAA,UAAA,UAAA,QAAA,UAAA,OAAA;;kBAAA;sBAAA;;;AAKLb,UAAAA,iBAAAA;QACF;QACAc,UAAU,WAAA;AACRR,kCAAiBK,IAAIH,IAAI,EAAA,GAClB,WAAA;mBAAMF,iBAAiBS,OAAOP,EAAAA;;QACvC;MACF;IACF;;;;;;;IAQAJ,wBAAwBY,SAAY;MAACjB;MAAWE;MAAaC;;EAAa;AAG5ET,eAAMiB,QAAQ,WAAA;AACZJ,qBAAiBW,QAAQ,SAACC,GAAGC,KAAAA;aAAQb,iBAAiBK,IAAIQ,KAAK,EAAA;;EACjE,GAAG;IAACpB;GAAU,GAMdN,MAAM2B,UAAU,WAAA;AACd,KAACrB,aAAa,CAACO,iBAAiBe,QAAQrB,iBAAAA;EAC1C,GAAG;IAACD;GAAU,GAEP,qBAACP,gBAAgB8B,UAAQ;IAACC,OAAOd;;;AAC1C,CAAA;AAGF,SAASF,iBAAAA;AACP,SAAO,oBAAIiB,IAAAA;AACb;",
|
|
5
5
|
"names": ["useConstant", "PresenceContext", "React", "useId", "PresenceChild", "memo", "children", "initial", "isPresent", "onExitComplete", "exitVariant", "enterVariant", "enterExitVariant", "presenceAffectsLayout", "custom", "presenceChildren", "newChildrenMap", "id", "context", "useMemo", "set", "values", "isComplete", "register", "delete", "undefined", "forEach", "_", "key", "useEffect", "size", "Provider", "value", "Map"]
|
|
6
6
|
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useConstant } from "@tamagui/use-constant";
|
|
3
|
+
import { PresenceContext } from "@tamagui/use-presence";
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
import { useId } from "react";
|
|
6
|
+
var PresenceChild = /* @__PURE__ */React.memo(function (param) {
|
|
7
|
+
var {
|
|
8
|
+
children,
|
|
9
|
+
initial,
|
|
10
|
+
isPresent,
|
|
11
|
+
onExitComplete,
|
|
12
|
+
exitVariant,
|
|
13
|
+
enterVariant,
|
|
14
|
+
enterExitVariant,
|
|
15
|
+
presenceAffectsLayout,
|
|
16
|
+
custom
|
|
17
|
+
} = param,
|
|
18
|
+
presenceChildren = useConstant(newChildrenMap),
|
|
19
|
+
id = useId() || "",
|
|
20
|
+
context = React.useMemo(function () {
|
|
21
|
+
return {
|
|
22
|
+
id,
|
|
23
|
+
initial,
|
|
24
|
+
isPresent,
|
|
25
|
+
custom,
|
|
26
|
+
exitVariant,
|
|
27
|
+
enterVariant,
|
|
28
|
+
enterExitVariant,
|
|
29
|
+
onExitComplete: function () {
|
|
30
|
+
presenceChildren.set(id, !0);
|
|
31
|
+
var _iteratorNormalCompletion = !0,
|
|
32
|
+
_didIteratorError = !1,
|
|
33
|
+
_iteratorError = void 0;
|
|
34
|
+
try {
|
|
35
|
+
for (var _iterator = presenceChildren.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
|
|
36
|
+
var isComplete = _step.value;
|
|
37
|
+
if (!isComplete) return;
|
|
38
|
+
}
|
|
39
|
+
} catch (err) {
|
|
40
|
+
_didIteratorError = !0, _iteratorError = err;
|
|
41
|
+
} finally {
|
|
42
|
+
try {
|
|
43
|
+
!_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
|
|
44
|
+
} finally {
|
|
45
|
+
if (_didIteratorError) throw _iteratorError;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
onExitComplete?.();
|
|
49
|
+
},
|
|
50
|
+
register: function () {
|
|
51
|
+
return presenceChildren.set(id, !1), function () {
|
|
52
|
+
return presenceChildren.delete(id);
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
},
|
|
57
|
+
/**
|
|
58
|
+
* If the presence of a child affects the layout of the components around it,
|
|
59
|
+
* we want to make a new context value to ensure they get re-rendered
|
|
60
|
+
* so they can detect that layout change.
|
|
61
|
+
*/
|
|
62
|
+
// @ts-expect-error its ok
|
|
63
|
+
presenceAffectsLayout ? void 0 : [isPresent, exitVariant, enterVariant]);
|
|
64
|
+
return React.useMemo(function () {
|
|
65
|
+
presenceChildren.forEach(function (_, key) {
|
|
66
|
+
return presenceChildren.set(key, !1);
|
|
67
|
+
});
|
|
68
|
+
}, [isPresent]), React.useEffect(function () {
|
|
69
|
+
!isPresent && !presenceChildren.size && onExitComplete?.();
|
|
70
|
+
}, [isPresent]), /* @__PURE__ */_jsx(PresenceContext.Provider, {
|
|
71
|
+
value: context,
|
|
72
|
+
children
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
function newChildrenMap() {
|
|
76
|
+
return /* @__PURE__ */new Map();
|
|
77
|
+
}
|
|
78
|
+
export { PresenceChild };
|
|
79
|
+
//# sourceMappingURL=PresenceChild.native.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","useConstant","PresenceContext","React","useId","PresenceChild","memo","param","children","initial","isPresent","onExitComplete","exitVariant","enterVariant","enterExitVariant","presenceAffectsLayout","custom","presenceChildren","newChildrenMap","id","context","useMemo","set","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","values","Symbol","iterator","_step","next","done","isComplete","value","err","return","register","delete"],"sources":["../../src/PresenceChild.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAA,IAAAC,IAAA,QAAmB;AAC5B,SAASC,WAAA,+BAAuB;AAEhC,SAAAC,eAAuB;AACvB,YAASC,KAAA,MAAa;AA+EX,SAAAC,KAAA;AA9DJ,IAAAC,aAAM,kBAAsBF,KAAA,CAAAG,IAAA,WAAAC,KAAA;EACjC,IAAC;MAAAC,QAAA;MAAAC,OAAA;MAAAC,SAAA;MAAAC,cAAA;MAAAC,WAAA;MAAAC,YAAA;MAAAC,gBAAA;MAAAC,qBAAA;MAAAC;IAAA,IAAAT,KAAA;IAAAU,gBAAA,GAAAhB,WAAA,CAAAiB,cAAA;IAAAC,EAAA,GAAAf,KAAA;IAAAgB,OAAA,GAAAjB,KAAA,CAAAkB,OAAA,CACC;MACA;QACAF,EAAA;QACAV,OAAA;QACAC,SAAA;QACAM,MAAA;QACAJ,WAAA;QACAC,YAAA;QACAC,gBAAA;QACwBH,cAAA,WAAAA,CAAA;UAClBM,gBAAA,CAAAK,GAAmB,CAAAH,EAAA;UAIvB,IACSI,yBAAA;YAAAC,iBAAA;YAAAC,cAAA;UACL;YACA,SAAAC,SAAA,GAAAT,gBAAA,CAAAU,MAAA,GAAAC,MAAA,CAAAC,QAAA,KAAAC,KAAA,IAAAP,yBAAA,IAAAO,KAAA,GAAAJ,SAAA,CAAAK,IAAA,IAAAC,IAAA,GAAAT,yBAAA;cACA,IAAAU,UAAA,GAAAH,KAAA,CAAAI,KAAA;cACA,KAAAD,UAAA,EACA;YACA;UACA,SAAAE,GAAA;YACAX,iBAAgB,GAAM,IAAAC,cAAA,GAAAU,GAAA;UACpB;YACA;cACE,CAAAZ,yBAAK,IAAAG,SAAA,CAAAU,MAAA,YAAAV,SAAA,CAAAU,MAAA;YACH;cAGJ,IAAAZ,iBAAiB,EACnB,MAAAC,cAAA;YACA;UAIF;UAAAd,cAAA;QAAA;QAAA0B,QAAA,WAAAA,CAAA;UAAA,OAAApB,gBAAA,CAAAK,GAAA,CAAAH,EAAA;YAAA,OAAAF,gBAAA,CAAAqB,MAAA,CAAAnB,EAAA;UAAA;QASF;MACF;IAEA;IACE;AAAqE;AAQrE;AAAyD;AAGA;IAE/D;IAEAJ,qBAAS,GAAuC,UAC9CL,SAAO,EACTE,WAAA,E","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":[],"sourcesContent":[],"mappings":"","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/animate-presence",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.111.0",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"license": "MIT",
|
|
@@ -13,14 +13,14 @@
|
|
|
13
13
|
"dist"
|
|
14
14
|
],
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@tamagui/helpers": "1.
|
|
17
|
-
"@tamagui/use-constant": "1.
|
|
18
|
-
"@tamagui/use-force-update": "1.
|
|
19
|
-
"@tamagui/use-presence": "1.
|
|
20
|
-
"@tamagui/web": "1.
|
|
16
|
+
"@tamagui/helpers": "1.111.0",
|
|
17
|
+
"@tamagui/use-constant": "1.111.0",
|
|
18
|
+
"@tamagui/use-force-update": "1.111.0",
|
|
19
|
+
"@tamagui/use-presence": "1.111.0",
|
|
20
|
+
"@tamagui/web": "1.111.0"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
|
-
"@tamagui/build": "1.
|
|
23
|
+
"@tamagui/build": "1.111.0"
|
|
24
24
|
},
|
|
25
25
|
"scripts": {
|
|
26
26
|
"build": "tamagui-build",
|