@tamagui/portal 1.43.2 → 1.43.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -37,28 +37,31 @@ var import_core = require("@tamagui/core");
37
37
  var import_stacks = require("@tamagui/stacks");
38
38
  var React = __toESM(require("react"));
39
39
  var import_react_dom = require("react-dom");
40
- const Portal = ({ host = ((_a) => (_a = globalThis.document) == null ? void 0 : _a.body)(), ...props }) => {
41
- const contents = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
42
- import_stacks.YStack,
43
- {
44
- contain: "strict",
45
- fullscreen: true,
46
- position: import_core.isWeb ? "fixed" : "absolute",
47
- maxWidth: import_core.isWeb ? "100vw" : "100%",
48
- maxHeight: import_core.isWeb ? "100vh" : "100%",
49
- pointerEvents: "none",
50
- ...props
40
+ const Portal = React.memo(
41
+ ({ host = ((_a) => (_a = globalThis.document) == null ? void 0 : _a.body)(), ...props }) => {
42
+ const contents = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
43
+ import_stacks.YStack,
44
+ {
45
+ contain: "strict",
46
+ fullscreen: true,
47
+ position: import_core.isWeb ? "fixed" : "absolute",
48
+ maxWidth: import_core.isWeb ? "100vw" : "100%",
49
+ maxHeight: import_core.isWeb ? "100vh" : "100%",
50
+ pointerEvents: "none",
51
+ ...props
52
+ }
53
+ );
54
+ const [hostElement, setHostElement] = React.useState(null);
55
+ const id = React.useId();
56
+ (0, import_core.useIsomorphicLayoutEffect)(() => {
57
+ setHostElement(host);
58
+ }, [host]);
59
+ if (hostElement && props.children) {
60
+ return (0, import_react_dom.createPortal)(contents, hostElement);
51
61
  }
52
- );
53
- const [hostElement, setHostElement] = React.useState(null);
54
- (0, import_core.useIsomorphicLayoutEffect)(() => {
55
- setHostElement(host);
56
- }, [host]);
57
- if (hostElement && props.children) {
58
- return (0, import_react_dom.createPortal)(contents, hostElement);
62
+ return null;
59
63
  }
60
- return null;
61
- };
64
+ );
62
65
  // Annotate the CommonJS export names for ESM import in node:
63
66
  0 && (module.exports = {
64
67
  Portal
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Portal.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAYI;AAXJ,0BAAO;AAEP,kBAAiD;AACjD,oBAAuB;AACvB,YAAuB;AACvB,uBAA6B;AAItB,MAAM,SAAS,CAAC,EAAE,QAAO,yBAAW,aAAX,mBAAqB,SAAM,GAAG,MAAM,MAAmB;AACrF,QAAM,WACJ;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,YAAU;AAAA,MAEV,UAAU,oBAAQ,UAAU;AAAA,MAC5B,UAAU,oBAAQ,UAAU;AAAA,MAC5B,WAAW,oBAAQ,UAAU;AAAA,MAC7B,eAAc;AAAA,MACb,GAAG;AAAA;AAAA,EACN;AAGF,QAAM,CAAC,aAAa,cAAc,IAAI,MAAM,SAAc,IAAI;AAE9D,6CAA0B,MAAM;AAC9B,mBAAe,IAAI;AAAA,EACrB,GAAG,CAAC,IAAI,CAAC;AAET,MAAI,eAAe,MAAM,UAAU;AACjC,eAAO,+BAAa,UAAU,WAAW;AAAA,EAC3C;AAGA,SAAO;AACT;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAaM;AAZN,0BAAO;AAEP,kBAAiD;AACjD,oBAAuB;AACvB,YAAuB;AACvB,uBAA6B;AAItB,MAAM,SAAS,MAAM;AAAA,EAC1B,CAAC,EAAE,QAAO,yBAAW,aAAX,mBAAqB,SAAM,GAAG,MAAM,MAAmB;AAC/D,UAAM,WACJ;AAAA,MAAC;AAAA;AAAA,QACC,SAAQ;AAAA,QACR,YAAU;AAAA,QAEV,UAAU,oBAAQ,UAAU;AAAA,QAC5B,UAAU,oBAAQ,UAAU;AAAA,QAC5B,WAAW,oBAAQ,UAAU;AAAA,QAC7B,eAAc;AAAA,QACb,GAAG;AAAA;AAAA,IACN;AAGF,UAAM,CAAC,aAAa,cAAc,IAAI,MAAM,SAAc,IAAI;AAE9D,UAAM,KAAK,MAAM,MAAM;AACvB,+CAA0B,MAAM;AAC9B,qBAAe,IAAI;AAAA,IACrB,GAAG,CAAC,IAAI,CAAC;AAET,QAAI,eAAe,MAAM,UAAU;AACjC,iBAAO,+BAAa,UAAU,WAAW;AAAA,IAC3C;AAGA,WAAO;AAAA,EACT;AACF;",
5
5
  "names": []
6
6
  }
@@ -4,28 +4,31 @@ import { isWeb, useIsomorphicLayoutEffect } from "@tamagui/core";
4
4
  import { YStack } from "@tamagui/stacks";
5
5
  import * as React from "react";
6
6
  import { createPortal } from "react-dom";
7
- const Portal = ({ host = ((_a) => (_a = globalThis.document) == null ? void 0 : _a.body)(), ...props }) => {
8
- const contents = /* @__PURE__ */ jsx(
9
- YStack,
10
- {
11
- contain: "strict",
12
- fullscreen: true,
13
- position: isWeb ? "fixed" : "absolute",
14
- maxWidth: isWeb ? "100vw" : "100%",
15
- maxHeight: isWeb ? "100vh" : "100%",
16
- pointerEvents: "none",
17
- ...props
7
+ const Portal = React.memo(
8
+ ({ host = ((_a) => (_a = globalThis.document) == null ? void 0 : _a.body)(), ...props }) => {
9
+ const contents = /* @__PURE__ */ jsx(
10
+ YStack,
11
+ {
12
+ contain: "strict",
13
+ fullscreen: true,
14
+ position: isWeb ? "fixed" : "absolute",
15
+ maxWidth: isWeb ? "100vw" : "100%",
16
+ maxHeight: isWeb ? "100vh" : "100%",
17
+ pointerEvents: "none",
18
+ ...props
19
+ }
20
+ );
21
+ const [hostElement, setHostElement] = React.useState(null);
22
+ const id = React.useId();
23
+ useIsomorphicLayoutEffect(() => {
24
+ setHostElement(host);
25
+ }, [host]);
26
+ if (hostElement && props.children) {
27
+ return createPortal(contents, hostElement);
18
28
  }
19
- );
20
- const [hostElement, setHostElement] = React.useState(null);
21
- useIsomorphicLayoutEffect(() => {
22
- setHostElement(host);
23
- }, [host]);
24
- if (hostElement && props.children) {
25
- return createPortal(contents, hostElement);
29
+ return null;
26
30
  }
27
- return null;
28
- };
31
+ );
29
32
  export {
30
33
  Portal
31
34
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Portal.tsx"],
4
- "mappings": "AAYI;AAXJ,OAAO;AAEP,SAAS,OAAO,iCAAiC;AACjD,SAAS,cAAc;AACvB,YAAY,WAAW;AACvB,SAAS,oBAAoB;AAItB,MAAM,SAAS,CAAC,EAAE,QAAO,yBAAW,aAAX,mBAAqB,SAAM,GAAG,MAAM,MAAmB;AACrF,QAAM,WACJ;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,YAAU;AAAA,MAEV,UAAU,QAAQ,UAAU;AAAA,MAC5B,UAAU,QAAQ,UAAU;AAAA,MAC5B,WAAW,QAAQ,UAAU;AAAA,MAC7B,eAAc;AAAA,MACb,GAAG;AAAA;AAAA,EACN;AAGF,QAAM,CAAC,aAAa,cAAc,IAAI,MAAM,SAAc,IAAI;AAE9D,4BAA0B,MAAM;AAC9B,mBAAe,IAAI;AAAA,EACrB,GAAG,CAAC,IAAI,CAAC;AAET,MAAI,eAAe,MAAM,UAAU;AACjC,WAAO,aAAa,UAAU,WAAW;AAAA,EAC3C;AAGA,SAAO;AACT;",
4
+ "mappings": "AAaM;AAZN,OAAO;AAEP,SAAS,OAAO,iCAAiC;AACjD,SAAS,cAAc;AACvB,YAAY,WAAW;AACvB,SAAS,oBAAoB;AAItB,MAAM,SAAS,MAAM;AAAA,EAC1B,CAAC,EAAE,QAAO,yBAAW,aAAX,mBAAqB,SAAM,GAAG,MAAM,MAAmB;AAC/D,UAAM,WACJ;AAAA,MAAC;AAAA;AAAA,QACC,SAAQ;AAAA,QACR,YAAU;AAAA,QAEV,UAAU,QAAQ,UAAU;AAAA,QAC5B,UAAU,QAAQ,UAAU;AAAA,QAC5B,WAAW,QAAQ,UAAU;AAAA,QAC7B,eAAc;AAAA,QACb,GAAG;AAAA;AAAA,IACN;AAGF,UAAM,CAAC,aAAa,cAAc,IAAI,MAAM,SAAc,IAAI;AAE9D,UAAM,KAAK,MAAM,MAAM;AACvB,8BAA0B,MAAM;AAC9B,qBAAe,IAAI;AAAA,IACrB,GAAG,CAAC,IAAI,CAAC;AAET,QAAI,eAAe,MAAM,UAAU;AACjC,aAAO,aAAa,UAAU,WAAW;AAAA,IAC3C;AAGA,WAAO;AAAA,EACT;AACF;",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/portal",
3
- "version": "1.43.2",
3
+ "version": "1.43.3",
4
4
  "source": "src/index.ts",
5
5
  "types": "./types/index.d.ts",
6
6
  "main": "dist/cjs",
@@ -27,16 +27,16 @@
27
27
  }
28
28
  },
29
29
  "dependencies": {
30
- "@tamagui/core": "1.43.2",
31
- "@tamagui/stacks": "1.43.2",
32
- "@tamagui/use-event": "1.43.2"
30
+ "@tamagui/core": "1.43.3",
31
+ "@tamagui/stacks": "1.43.3",
32
+ "@tamagui/use-event": "1.43.3"
33
33
  },
34
34
  "peerDependencies": {
35
35
  "react": "*",
36
36
  "react-native": "*"
37
37
  },
38
38
  "devDependencies": {
39
- "@tamagui/build": "1.43.2",
39
+ "@tamagui/build": "1.43.3",
40
40
  "react": "^18.2.0",
41
41
  "react-native": "^0.72.1"
42
42
  },
package/src/Portal.tsx CHANGED
@@ -8,30 +8,33 @@ import { createPortal } from 'react-dom'
8
8
 
9
9
  import { PortalProps } from './PortalProps'
10
10
 
11
- export const Portal = ({ host = globalThis.document?.body, ...props }: PortalProps) => {
12
- const contents = (
13
- <YStack
14
- contain="strict"
15
- fullscreen
16
- // @ts-expect-error ok on web
17
- position={isWeb ? 'fixed' : 'absolute'}
18
- maxWidth={isWeb ? '100vw' : '100%'}
19
- maxHeight={isWeb ? '100vh' : '100%'}
20
- pointerEvents="none"
21
- {...props}
22
- />
23
- )
11
+ export const Portal = React.memo(
12
+ ({ host = globalThis.document?.body, ...props }: PortalProps) => {
13
+ const contents = (
14
+ <YStack
15
+ contain="strict"
16
+ fullscreen
17
+ // @ts-expect-error ok on web
18
+ position={isWeb ? 'fixed' : 'absolute'}
19
+ maxWidth={isWeb ? '100vw' : '100%'}
20
+ maxHeight={isWeb ? '100vh' : '100%'}
21
+ pointerEvents="none"
22
+ {...props}
23
+ />
24
+ )
24
25
 
25
- const [hostElement, setHostElement] = React.useState<any>(null)
26
+ const [hostElement, setHostElement] = React.useState<any>(null)
26
27
 
27
- useIsomorphicLayoutEffect(() => {
28
- setHostElement(host)
29
- }, [host])
28
+ const id = React.useId()
29
+ useIsomorphicLayoutEffect(() => {
30
+ setHostElement(host)
31
+ }, [host])
30
32
 
31
- if (hostElement && props.children) {
32
- return createPortal(contents, hostElement)
33
- }
33
+ if (hostElement && props.children) {
34
+ return createPortal(contents, hostElement)
35
+ }
34
36
 
35
- // ssr return null
36
- return null
37
- }
37
+ // ssr return null
38
+ return null
39
+ }
40
+ )
package/types/Portal.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import '@tamagui/polyfill-dev';
2
2
  import * as React from 'react';
3
3
  import { PortalProps } from './PortalProps';
4
- export declare const Portal: ({ host, ...props }: PortalProps) => React.ReactPortal | null;
4
+ export declare const Portal: React.MemoExoticComponent<({ host, ...props }: PortalProps) => React.ReactPortal | null>;
5
5
  //# sourceMappingURL=Portal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Portal.d.ts","sourceRoot":"","sources":["../src/Portal.tsx"],"names":[],"mappings":"AACA,OAAO,uBAAuB,CAAA;AAI9B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,eAAO,MAAM,MAAM,uBAAoD,WAAW,6BA0BjF,CAAA"}
1
+ {"version":3,"file":"Portal.d.ts","sourceRoot":"","sources":["../src/Portal.tsx"],"names":[],"mappings":"AACA,OAAO,uBAAuB,CAAA;AAI9B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,eAAO,MAAM,MAAM,iDACgC,WAAW,8BA4B7D,CAAA"}