@tamagui/portal 1.135.2 → 1.135.4
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/GorhomPortalItem.cjs +14 -4
- package/dist/cjs/GorhomPortalItem.js +13 -4
- package/dist/cjs/GorhomPortalItem.js.map +1 -1
- package/dist/esm/GorhomPortalItem.js +13 -4
- package/dist/esm/GorhomPortalItem.js.map +1 -1
- package/dist/esm/GorhomPortalItem.mjs +14 -4
- package/dist/esm/GorhomPortalItem.mjs.map +1 -1
- package/package.json +8 -8
- package/src/GorhomPortalItem.tsx +22 -6
- package/types/GorhomPortalItem.d.ts.map +1 -1
|
@@ -30,14 +30,24 @@ var import_constants = require("@tamagui/constants"),
|
|
|
30
30
|
const GorhomPortalItem = props => {
|
|
31
31
|
!props.hostName && !props.passThrough && console.warn("No hostName");
|
|
32
32
|
const cur = import_constants2.allPortalHosts.get(props.hostName || ""),
|
|
33
|
-
[node, setNode] = (0, import_react.useState)(cur)
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
[node, setNode] = (0, import_react.useState)(cur),
|
|
34
|
+
actualNode = node?.isConnected ? node : null;
|
|
35
|
+
return !props.passThrough && cur && actualNode !== cur && setNode(cur), (0, import_constants.useIsomorphicLayoutEffect)(() => {
|
|
36
|
+
if (!props.hostName) return;
|
|
37
|
+
if (node && !node.isConnected) {
|
|
38
|
+
setNode(null);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (actualNode) return;
|
|
42
|
+
if (cur) {
|
|
43
|
+
setNode(cur);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
36
46
|
const listener = newNode => {
|
|
37
47
|
setNode(newNode);
|
|
38
48
|
};
|
|
39
49
|
return import_constants2.portalListeners[props.hostName] ||= /* @__PURE__ */new Set(), import_constants2.portalListeners[props.hostName].add(listener), () => {
|
|
40
50
|
import_constants2.portalListeners[props.hostName]?.delete(listener);
|
|
41
51
|
};
|
|
42
|
-
}, [node]), props.passThrough ? props.children :
|
|
52
|
+
}, [node, actualNode, cur, props.hostName]), props.passThrough ? props.children : actualNode ? (0, import_react_dom.createPortal)(props.children, actualNode) : null;
|
|
43
53
|
};
|
|
@@ -20,15 +20,24 @@ module.exports = __toCommonJS(GorhomPortalItem_exports);
|
|
|
20
20
|
var import_constants = require("@tamagui/constants"), import_react = require("react"), import_react_dom = require("react-dom"), import_constants2 = require("./constants");
|
|
21
21
|
const GorhomPortalItem = (props) => {
|
|
22
22
|
!props.hostName && !props.passThrough && console.warn("No hostName");
|
|
23
|
-
const cur = import_constants2.allPortalHosts.get(props.hostName || ""), [node, setNode] = (0, import_react.useState)(cur);
|
|
24
|
-
return !props.passThrough && cur &&
|
|
25
|
-
if (!props.hostName
|
|
23
|
+
const cur = import_constants2.allPortalHosts.get(props.hostName || ""), [node, setNode] = (0, import_react.useState)(cur), actualNode = node?.isConnected ? node : null;
|
|
24
|
+
return !props.passThrough && cur && actualNode !== cur && setNode(cur), (0, import_constants.useIsomorphicLayoutEffect)(() => {
|
|
25
|
+
if (!props.hostName) return;
|
|
26
|
+
if (node && !node.isConnected) {
|
|
27
|
+
setNode(null);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
if (actualNode) return;
|
|
31
|
+
if (cur) {
|
|
32
|
+
setNode(cur);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
26
35
|
const listener = (newNode) => {
|
|
27
36
|
setNode(newNode);
|
|
28
37
|
};
|
|
29
38
|
return import_constants2.portalListeners[props.hostName] ||= /* @__PURE__ */ new Set(), import_constants2.portalListeners[props.hostName].add(listener), () => {
|
|
30
39
|
import_constants2.portalListeners[props.hostName]?.delete(listener);
|
|
31
40
|
};
|
|
32
|
-
}, [node]), props.passThrough ? props.children :
|
|
41
|
+
}, [node, actualNode, cur, props.hostName]), props.passThrough ? props.children : actualNode ? (0, import_react_dom.createPortal)(props.children, actualNode) : null;
|
|
33
42
|
};
|
|
34
43
|
//# sourceMappingURL=GorhomPortalItem.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/GorhomPortalItem.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA0C,+BAC1C,eAAyB,kBACzB,mBAA6B,sBAC7BA,oBAAgD;AAGzC,MAAM,mBAAmB,CAAC,UAA2B;AAC1D,EAAI,CAAC,MAAM,YAAY,CAAC,MAAM,eAC5B,QAAQ,KAAK,aAAa;AAG5B,QAAM,MAAM,iCAAe,IAAI,MAAM,YAAY,EAAE,GAC7C,CAAC,MAAM,OAAO,QAAI,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA0C,+BAC1C,eAAyB,kBACzB,mBAA6B,sBAC7BA,oBAAgD;AAGzC,MAAM,mBAAmB,CAAC,UAA2B;AAC1D,EAAI,CAAC,MAAM,YAAY,CAAC,MAAM,eAC5B,QAAQ,KAAK,aAAa;AAG5B,QAAM,MAAM,iCAAe,IAAI,MAAM,YAAY,EAAE,GAC7C,CAAC,MAAM,OAAO,QAAI,uBAAyC,GAAG,GAG9D,aAAa,MAAM,cAAc,OAAO;AAkC9C,SAhCI,CAAC,MAAM,eAAe,OAAO,eAAe,OAC9C,QAAQ,GAAG,OAGb,4CAA0B,MAAM;AAC9B,QAAI,CAAC,MAAM,SAAU;AAGrB,QAAI,QAAQ,CAAC,KAAK,aAAa;AAC7B,cAAQ,IAAI;AACZ;AAAA,IACF;AAEA,QAAI,WAAY;AAGhB,QAAI,KAAK;AACP,cAAQ,GAAG;AACX;AAAA,IACF;AAEA,UAAM,WAAW,CAAC,YAAyB;AACzC,cAAQ,OAAO;AAAA,IACjB;AAEA,6CAAgB,MAAM,QAAQ,MAAM,oBAAI,IAAI,GAC5C,kCAAgB,MAAM,QAAQ,EAAE,IAAI,QAAQ,GACrC,MAAM;AACX,wCAAgB,MAAM,QAAS,GAAG,OAAO,QAAQ;AAAA,IACnD;AAAA,EACF,GAAG,CAAC,MAAM,YAAY,KAAK,MAAM,QAAQ,CAAC,GAEtC,MAAM,cACD,MAAM,WAGV,iBAIE,+BAAa,MAAM,UAAU,UAAU,IAHrC;AAIX;",
|
|
5
5
|
"names": ["import_constants"]
|
|
6
6
|
}
|
|
@@ -4,16 +4,25 @@ import { createPortal } from "react-dom";
|
|
|
4
4
|
import { allPortalHosts, portalListeners } from "./constants";
|
|
5
5
|
const GorhomPortalItem = (props) => {
|
|
6
6
|
!props.hostName && !props.passThrough && console.warn("No hostName");
|
|
7
|
-
const cur = allPortalHosts.get(props.hostName || ""), [node, setNode] = useState(cur);
|
|
8
|
-
return !props.passThrough && cur &&
|
|
9
|
-
if (!props.hostName
|
|
7
|
+
const cur = allPortalHosts.get(props.hostName || ""), [node, setNode] = useState(cur), actualNode = node?.isConnected ? node : null;
|
|
8
|
+
return !props.passThrough && cur && actualNode !== cur && setNode(cur), useIsomorphicLayoutEffect(() => {
|
|
9
|
+
if (!props.hostName) return;
|
|
10
|
+
if (node && !node.isConnected) {
|
|
11
|
+
setNode(null);
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
if (actualNode) return;
|
|
15
|
+
if (cur) {
|
|
16
|
+
setNode(cur);
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
10
19
|
const listener = (newNode) => {
|
|
11
20
|
setNode(newNode);
|
|
12
21
|
};
|
|
13
22
|
return portalListeners[props.hostName] ||= /* @__PURE__ */ new Set(), portalListeners[props.hostName].add(listener), () => {
|
|
14
23
|
portalListeners[props.hostName]?.delete(listener);
|
|
15
24
|
};
|
|
16
|
-
}, [node]), props.passThrough ? props.children :
|
|
25
|
+
}, [node, actualNode, cur, props.hostName]), props.passThrough ? props.children : actualNode ? createPortal(props.children, actualNode) : null;
|
|
17
26
|
};
|
|
18
27
|
export {
|
|
19
28
|
GorhomPortalItem
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/GorhomPortalItem.tsx"],
|
|
4
|
-
"mappings": "AAAA,SAAS,iCAAiC;AAC1C,SAAS,gBAAgB;AACzB,SAAS,oBAAoB;AAC7B,SAAS,gBAAgB,uBAAuB;AAGzC,MAAM,mBAAmB,CAAC,UAA2B;AAC1D,EAAI,CAAC,MAAM,YAAY,CAAC,MAAM,eAC5B,QAAQ,KAAK,aAAa;AAG5B,QAAM,MAAM,eAAe,IAAI,MAAM,YAAY,EAAE,GAC7C,CAAC,MAAM,OAAO,IAAI,
|
|
4
|
+
"mappings": "AAAA,SAAS,iCAAiC;AAC1C,SAAS,gBAAgB;AACzB,SAAS,oBAAoB;AAC7B,SAAS,gBAAgB,uBAAuB;AAGzC,MAAM,mBAAmB,CAAC,UAA2B;AAC1D,EAAI,CAAC,MAAM,YAAY,CAAC,MAAM,eAC5B,QAAQ,KAAK,aAAa;AAG5B,QAAM,MAAM,eAAe,IAAI,MAAM,YAAY,EAAE,GAC7C,CAAC,MAAM,OAAO,IAAI,SAAyC,GAAG,GAG9D,aAAa,MAAM,cAAc,OAAO;AAkC9C,SAhCI,CAAC,MAAM,eAAe,OAAO,eAAe,OAC9C,QAAQ,GAAG,GAGb,0BAA0B,MAAM;AAC9B,QAAI,CAAC,MAAM,SAAU;AAGrB,QAAI,QAAQ,CAAC,KAAK,aAAa;AAC7B,cAAQ,IAAI;AACZ;AAAA,IACF;AAEA,QAAI,WAAY;AAGhB,QAAI,KAAK;AACP,cAAQ,GAAG;AACX;AAAA,IACF;AAEA,UAAM,WAAW,CAAC,YAAyB;AACzC,cAAQ,OAAO;AAAA,IACjB;AAEA,2BAAgB,MAAM,QAAQ,MAAM,oBAAI,IAAI,GAC5C,gBAAgB,MAAM,QAAQ,EAAE,IAAI,QAAQ,GACrC,MAAM;AACX,sBAAgB,MAAM,QAAS,GAAG,OAAO,QAAQ;AAAA,IACnD;AAAA,EACF,GAAG,CAAC,MAAM,YAAY,KAAK,MAAM,QAAQ,CAAC,GAEtC,MAAM,cACD,MAAM,WAGV,aAIE,aAAa,MAAM,UAAU,UAAU,IAHrC;AAIX;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -5,16 +5,26 @@ import { allPortalHosts, portalListeners } from "./constants.mjs";
|
|
|
5
5
|
const GorhomPortalItem = props => {
|
|
6
6
|
!props.hostName && !props.passThrough && console.warn("No hostName");
|
|
7
7
|
const cur = allPortalHosts.get(props.hostName || ""),
|
|
8
|
-
[node, setNode] = useState(cur)
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
[node, setNode] = useState(cur),
|
|
9
|
+
actualNode = node?.isConnected ? node : null;
|
|
10
|
+
return !props.passThrough && cur && actualNode !== cur && setNode(cur), useIsomorphicLayoutEffect(() => {
|
|
11
|
+
if (!props.hostName) return;
|
|
12
|
+
if (node && !node.isConnected) {
|
|
13
|
+
setNode(null);
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
if (actualNode) return;
|
|
17
|
+
if (cur) {
|
|
18
|
+
setNode(cur);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
11
21
|
const listener = newNode => {
|
|
12
22
|
setNode(newNode);
|
|
13
23
|
};
|
|
14
24
|
return portalListeners[props.hostName] ||= /* @__PURE__ */new Set(), portalListeners[props.hostName].add(listener), () => {
|
|
15
25
|
portalListeners[props.hostName]?.delete(listener);
|
|
16
26
|
};
|
|
17
|
-
}, [node]), props.passThrough ? props.children :
|
|
27
|
+
}, [node, actualNode, cur, props.hostName]), props.passThrough ? props.children : actualNode ? createPortal(props.children, actualNode) : null;
|
|
18
28
|
};
|
|
19
29
|
export { GorhomPortalItem };
|
|
20
30
|
//# sourceMappingURL=GorhomPortalItem.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useIsomorphicLayoutEffect","useState","createPortal","allPortalHosts","portalListeners","GorhomPortalItem","props","hostName","passThrough","console","warn","cur","get","node","setNode","listener","newNode","Set","add","delete","children"],"sources":["../../src/GorhomPortalItem.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,yBAAA,QAAiC;AAC1C,SAASC,QAAA,QAAgB;AACzB,SAASC,YAAA,QAAoB;AAC7B,SAASC,cAAA,EAAgBC,eAAA,QAAuB;AAGzC,MAAMC,gBAAA,GAAoBC,KAAA,IAA2B;EACtD,CAACA,KAAA,CAAMC,QAAA,IAAY,CAACD,KAAA,CAAME,WAAA,IAC5BC,OAAA,CAAQC,IAAA,CAAK,aAAa;EAG5B,MAAMC,GAAA,GAAMR,cAAA,CAAeS,GAAA,CAAIN,KAAA,CAAMC,QAAA,IAAY,EAAE;IAC7C,CAACM,IAAA,EAAMC,OAAO,IAAIb,QAAA,
|
|
1
|
+
{"version":3,"names":["useIsomorphicLayoutEffect","useState","createPortal","allPortalHosts","portalListeners","GorhomPortalItem","props","hostName","passThrough","console","warn","cur","get","node","setNode","actualNode","isConnected","listener","newNode","Set","add","delete","children"],"sources":["../../src/GorhomPortalItem.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,yBAAA,QAAiC;AAC1C,SAASC,QAAA,QAAgB;AACzB,SAASC,YAAA,QAAoB;AAC7B,SAASC,cAAA,EAAgBC,eAAA,QAAuB;AAGzC,MAAMC,gBAAA,GAAoBC,KAAA,IAA2B;EACtD,CAACA,KAAA,CAAMC,QAAA,IAAY,CAACD,KAAA,CAAME,WAAA,IAC5BC,OAAA,CAAQC,IAAA,CAAK,aAAa;EAG5B,MAAMC,GAAA,GAAMR,cAAA,CAAeS,GAAA,CAAIN,KAAA,CAAMC,QAAA,IAAY,EAAE;IAC7C,CAACM,IAAA,EAAMC,OAAO,IAAIb,QAAA,CAAyCU,GAAG;IAG9DI,UAAA,GAAaF,IAAA,EAAMG,WAAA,GAAcH,IAAA,GAAO;EAkC9C,OAhCI,CAACP,KAAA,CAAME,WAAA,IAAeG,GAAA,IAAOI,UAAA,KAAeJ,GAAA,IAC9CG,OAAA,CAAQH,GAAG,GAGbX,yBAAA,CAA0B,MAAM;IAC9B,IAAI,CAACM,KAAA,CAAMC,QAAA,EAAU;IAGrB,IAAIM,IAAA,IAAQ,CAACA,IAAA,CAAKG,WAAA,EAAa;MAC7BF,OAAA,CAAQ,IAAI;MACZ;IACF;IAEA,IAAIC,UAAA,EAAY;IAGhB,IAAIJ,GAAA,EAAK;MACPG,OAAA,CAAQH,GAAG;MACX;IACF;IAEA,MAAMM,QAAA,GAAYC,OAAA,IAAyB;MACzCJ,OAAA,CAAQI,OAAO;IACjB;IAEA,OAAAd,eAAA,CAAgBE,KAAA,CAAMC,QAAQ,MAAM,mBAAIY,GAAA,CAAI,GAC5Cf,eAAA,CAAgBE,KAAA,CAAMC,QAAQ,EAAEa,GAAA,CAAIH,QAAQ,GACrC,MAAM;MACXb,eAAA,CAAgBE,KAAA,CAAMC,QAAS,GAAGc,MAAA,CAAOJ,QAAQ;IACnD;EACF,GAAG,CAACJ,IAAA,EAAME,UAAA,EAAYJ,GAAA,EAAKL,KAAA,CAAMC,QAAQ,CAAC,GAEtCD,KAAA,CAAME,WAAA,GACDF,KAAA,CAAMgB,QAAA,GAGVP,UAAA,GAIEb,YAAA,CAAaI,KAAA,CAAMgB,QAAA,EAAUP,UAAU,IAHrC;AAIX","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/portal",
|
|
3
|
-
"version": "1.135.
|
|
3
|
+
"version": "1.135.4",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"types": "./types/index.d.ts",
|
|
6
6
|
"main": "dist/cjs",
|
|
@@ -32,15 +32,15 @@
|
|
|
32
32
|
}
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@tamagui/constants": "1.135.
|
|
36
|
-
"@tamagui/core": "1.135.
|
|
37
|
-
"@tamagui/start-transition": "1.135.
|
|
38
|
-
"@tamagui/use-event": "1.135.
|
|
39
|
-
"@tamagui/web": "1.135.
|
|
40
|
-
"@tamagui/z-index-stack": "1.135.
|
|
35
|
+
"@tamagui/constants": "1.135.4",
|
|
36
|
+
"@tamagui/core": "1.135.4",
|
|
37
|
+
"@tamagui/start-transition": "1.135.4",
|
|
38
|
+
"@tamagui/use-event": "1.135.4",
|
|
39
|
+
"@tamagui/web": "1.135.4",
|
|
40
|
+
"@tamagui/z-index-stack": "1.135.4"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
|
-
"@tamagui/build": "1.135.
|
|
43
|
+
"@tamagui/build": "1.135.4",
|
|
44
44
|
"react": "*",
|
|
45
45
|
"react-dom": "*",
|
|
46
46
|
"react-native": "^0.79.2"
|
package/src/GorhomPortalItem.tsx
CHANGED
|
@@ -10,15 +10,31 @@ export const GorhomPortalItem = (props: PortalItemProps) => {
|
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
const cur = allPortalHosts.get(props.hostName || '')
|
|
13
|
-
const [node, setNode] = useState(cur)
|
|
13
|
+
const [node, setNode] = useState<HTMLElement | null | undefined>(cur)
|
|
14
14
|
|
|
15
|
-
if
|
|
15
|
+
// Check if current node is disconnected and clear it immediately
|
|
16
|
+
const actualNode = node?.isConnected ? node : null
|
|
17
|
+
|
|
18
|
+
if (!props.passThrough && cur && actualNode !== cur) {
|
|
16
19
|
setNode(cur)
|
|
17
20
|
}
|
|
18
21
|
|
|
19
22
|
useIsomorphicLayoutEffect(() => {
|
|
20
23
|
if (!props.hostName) return
|
|
21
|
-
|
|
24
|
+
|
|
25
|
+
// Check if current node is still in the document
|
|
26
|
+
if (node && !node.isConnected) {
|
|
27
|
+
setNode(null)
|
|
28
|
+
return
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
if (actualNode) return
|
|
32
|
+
|
|
33
|
+
// If we already have cur from Map, use it immediately
|
|
34
|
+
if (cur) {
|
|
35
|
+
setNode(cur)
|
|
36
|
+
return
|
|
37
|
+
}
|
|
22
38
|
|
|
23
39
|
const listener = (newNode: HTMLElement) => {
|
|
24
40
|
setNode(newNode)
|
|
@@ -29,15 +45,15 @@ export const GorhomPortalItem = (props: PortalItemProps) => {
|
|
|
29
45
|
return () => {
|
|
30
46
|
portalListeners[props.hostName!]?.delete(listener)
|
|
31
47
|
}
|
|
32
|
-
}, [node])
|
|
48
|
+
}, [node, actualNode, cur, props.hostName])
|
|
33
49
|
|
|
34
50
|
if (props.passThrough) {
|
|
35
51
|
return props.children
|
|
36
52
|
}
|
|
37
53
|
|
|
38
|
-
if (!
|
|
54
|
+
if (!actualNode) {
|
|
39
55
|
return null
|
|
40
56
|
}
|
|
41
57
|
|
|
42
|
-
return createPortal(props.children,
|
|
58
|
+
return createPortal(props.children, actualNode)
|
|
43
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GorhomPortalItem.d.ts","sourceRoot":"","sources":["../src/GorhomPortalItem.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,eAAO,MAAM,gBAAgB,GAAI,OAAO,eAAe,
|
|
1
|
+
{"version":3,"file":"GorhomPortalItem.d.ts","sourceRoot":"","sources":["../src/GorhomPortalItem.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,eAAO,MAAM,gBAAgB,GAAI,OAAO,eAAe,QAoDtD,CAAA"}
|