@next-core/react-runtime 1.0.55 → 1.0.57

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.
@@ -4,13 +4,13 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.ReactUseBrick = ReactUseBrick;
8
- exports.ReactUseMultipleBricks = ReactUseMultipleBricks;
7
+ exports.ReactUseMultipleBricks = exports.ReactUseBrick = void 0;
9
8
  var _react = _interopRequireWildcard(require("react"));
10
9
  var _runtime = require("@next-core/runtime");
10
+ var _window$BRICK_NEXT_VE;
11
11
  // Note: always synchronize code in LegacyUseBrick:
12
12
  // `bricks/v2-adapter/src/data-providers/legacy-brick-kit/getLegacyUseBrick.ts`
13
- function ReactUseBrick({
13
+ let ReactUseBrick = function ReactUseBrick({
14
14
  useBrick,
15
15
  data
16
16
  }) {
@@ -59,11 +59,12 @@ function ReactUseBrick({
59
59
  key: renderKey,
60
60
  ref: refCallback
61
61
  });
62
- }
62
+ };
63
+ exports.ReactUseBrick = ReactUseBrick;
63
64
  function getUniqueId(ref) {
64
65
  return ++ref.current;
65
66
  }
66
- function ReactUseMultipleBricks({
67
+ let ReactUseMultipleBricks = function ReactUseMultipleBricks({
67
68
  useBrick,
68
69
  data
69
70
  }) {
@@ -78,5 +79,19 @@ function ReactUseMultipleBricks({
78
79
  useBrick: useBrick,
79
80
  data: data
80
81
  });
82
+ };
83
+
84
+ // istanbul ignore next
85
+ // Make v3 bricks compatible with Brick Next v2.
86
+ exports.ReactUseMultipleBricks = ReactUseMultipleBricks;
87
+ if (window.dll && (_window$BRICK_NEXT_VE = window.BRICK_NEXT_VERSIONS) !== null && _window$BRICK_NEXT_VE !== void 0 && (_window$BRICK_NEXT_VE = _window$BRICK_NEXT_VE["brick-container"]) !== null && _window$BRICK_NEXT_VE !== void 0 && _window$BRICK_NEXT_VE.startsWith("2.")) {
88
+ const {
89
+ SingleBrickAsComponentFactory,
90
+ BrickAsComponentFactory
91
+ } = window.dll("tYg3");
92
+ if (SingleBrickAsComponentFactory && BrickAsComponentFactory) {
93
+ exports.ReactUseBrick = ReactUseBrick = SingleBrickAsComponentFactory(_react.default);
94
+ exports.ReactUseMultipleBricks = ReactUseMultipleBricks = BrickAsComponentFactory(_react.default);
95
+ }
81
96
  }
82
97
  //# sourceMappingURL=ReactUseBrick.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReactUseBrick.js","names":["_react","_interopRequireWildcard","require","_runtime","ReactUseBrick","useBrick","data","renderResult","setRenderResult","useState","mountResult","useRef","renderKey","setRenderKey","IdCounterRef","useEffect","init","__secret_internals","renderUseBrick","getUniqueId","error","console","handleHttpError","refCallback","useCallback","element","current","mountUseBrick","unmountUseBrick","undefined","tagName","WebComponent","default","createElement","key","ref","ReactUseMultipleBricks","Array","isArray","Fragment","map","item","index"],"sources":["../../src/ReactUseBrick.tsx"],"sourcesContent":["import React, {\n MutableRefObject,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport type { UseSingleBrickConf } from \"@next-core/types\";\nimport { __secret_internals, handleHttpError } from \"@next-core/runtime\";\n\nexport interface ReactUseBrickProps {\n useBrick: UseSingleBrickConf;\n data?: unknown;\n}\n\n// Note: always synchronize code in LegacyUseBrick:\n// `bricks/v2-adapter/src/data-providers/legacy-brick-kit/getLegacyUseBrick.ts`\nexport function ReactUseBrick({\n useBrick,\n data,\n}: ReactUseBrickProps): React.ReactElement | null {\n const [renderResult, setRenderResult] =\n useState<__secret_internals.RenderUseBrickResult | null>(null);\n const mountResult = useRef<__secret_internals.MountUseBrickResult>();\n const [renderKey, setRenderKey] = useState<number>();\n const IdCounterRef = useRef(0);\n\n useEffect(() => {\n async function init() {\n try {\n setRenderResult(\n await __secret_internals.renderUseBrick(useBrick, data)\n );\n setRenderKey(getUniqueId(IdCounterRef));\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Render useBrick failed:\", useBrick, \"with data:\", data);\n handleHttpError(error);\n }\n }\n init();\n }, [data, useBrick]);\n\n const refCallback = useCallback(\n (element: HTMLElement | null) => {\n if (element) {\n mountResult.current = __secret_internals.mountUseBrick(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n renderResult!,\n element\n );\n } else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n __secret_internals.unmountUseBrick(renderResult!, mountResult.current!);\n mountResult.current = undefined;\n }\n },\n [renderResult]\n );\n\n if (!renderResult) {\n // Fallback when loading/\n return null;\n // return <span>🌀 Loading...</span>;\n }\n\n const { tagName } = renderResult;\n if (tagName === null) {\n return null;\n }\n\n const WebComponent = tagName as any;\n return <WebComponent key={renderKey} ref={refCallback} />;\n}\n\nfunction getUniqueId(ref: MutableRefObject<number>): number {\n return ++ref.current;\n}\n\nexport interface ReactUseMultipleBricksProps {\n useBrick: UseSingleBrickConf | UseSingleBrickConf[];\n data?: unknown;\n}\n\nexport function ReactUseMultipleBricks({\n useBrick,\n data,\n}: ReactUseMultipleBricksProps): React.ReactElement | null {\n if (Array.isArray(useBrick)) {\n return (\n <>\n {useBrick.map((item, index) => (\n <ReactUseBrick key={index} useBrick={item} data={data} />\n ))}\n </>\n );\n }\n return <ReactUseBrick useBrick={useBrick} data={data} />;\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAQA,IAAAC,QAAA,GAAAD,OAAA;AAOA;AACA;AACO,SAASE,aAAaA,CAAC;EAC5BC,QAAQ;EACRC;AACkB,CAAC,EAA6B;EAChD,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GACnC,IAAAC,eAAQ,EAAiD,IAAI,CAAC;EAChE,MAAMC,WAAW,GAAG,IAAAC,aAAM,EAAyC,CAAC;EACpE,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAG,IAAAJ,eAAQ,EAAS,CAAC;EACpD,MAAMK,YAAY,GAAG,IAAAH,aAAM,EAAC,CAAC,CAAC;EAE9B,IAAAI,gBAAS,EAAC,MAAM;IACd,eAAeC,IAAIA,CAAA,EAAG;MACpB,IAAI;QACFR,eAAe,CACb,MAAMS,2BAAkB,CAACC,cAAc,CAACb,QAAQ,EAAEC,IAAI,CACxD,CAAC;QACDO,YAAY,CAACM,WAAW,CAACL,YAAY,CAAC,CAAC;MACzC,CAAC,CAAC,OAAOM,KAAK,EAAE;QACd;QACAC,OAAO,CAACD,KAAK,CAAC,yBAAyB,EAAEf,QAAQ,EAAE,YAAY,EAAEC,IAAI,CAAC;QACtE,IAAAgB,wBAAe,EAACF,KAAK,CAAC;MACxB;IACF;IACAJ,IAAI,CAAC,CAAC;EACR,CAAC,EAAE,CAACV,IAAI,EAAED,QAAQ,CAAC,CAAC;EAEpB,MAAMkB,WAAW,GAAG,IAAAC,kBAAW,EAC5BC,OAA2B,IAAK;IAC/B,IAAIA,OAAO,EAAE;MACXf,WAAW,CAACgB,OAAO,GAAGT,2BAAkB,CAACU,aAAa;MACpD;MACApB,YAAY,EACZkB,OACF,CAAC;IACH,CAAC,MAAM;MACL;MACAR,2BAAkB,CAACW,eAAe,CAACrB,YAAY,EAAGG,WAAW,CAACgB,OAAQ,CAAC;MACvEhB,WAAW,CAACgB,OAAO,GAAGG,SAAS;IACjC;EACF,CAAC,EACD,CAACtB,YAAY,CACf,CAAC;EAED,IAAI,CAACA,YAAY,EAAE;IACjB;IACA,OAAO,IAAI;IACX;EACF;;EAEA,MAAM;IAAEuB;EAAQ,CAAC,GAAGvB,YAAY;EAChC,IAAIuB,OAAO,KAAK,IAAI,EAAE;IACpB,OAAO,IAAI;EACb;EAEA,MAAMC,YAAY,GAAGD,OAAc;EACnC,oBAAO9B,MAAA,CAAAgC,OAAA,CAAAC,aAAA,CAACF,YAAY;IAACG,GAAG,EAAEtB,SAAU;IAACuB,GAAG,EAAEZ;EAAY,CAAE,CAAC;AAC3D;AAEA,SAASJ,WAAWA,CAACgB,GAA6B,EAAU;EAC1D,OAAO,EAAEA,GAAG,CAACT,OAAO;AACtB;AAOO,SAASU,sBAAsBA,CAAC;EACrC/B,QAAQ;EACRC;AAC2B,CAAC,EAA6B;EACzD,IAAI+B,KAAK,CAACC,OAAO,CAACjC,QAAQ,CAAC,EAAE;IAC3B,oBACEL,MAAA,CAAAgC,OAAA,CAAAC,aAAA,CAAAjC,MAAA,CAAAgC,OAAA,CAAAO,QAAA,QACGlC,QAAQ,CAACmC,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,kBACxB1C,MAAA,CAAAgC,OAAA,CAAAC,aAAA,CAAC7B,aAAa;MAAC8B,GAAG,EAAEQ,KAAM;MAACrC,QAAQ,EAAEoC,IAAK;MAACnC,IAAI,EAAEA;IAAK,CAAE,CACzD,CACD,CAAC;EAEP;EACA,oBAAON,MAAA,CAAAgC,OAAA,CAAAC,aAAA,CAAC7B,aAAa;IAACC,QAAQ,EAAEA,QAAS;IAACC,IAAI,EAAEA;EAAK,CAAE,CAAC;AAC1D"}
1
+ {"version":3,"file":"ReactUseBrick.js","names":["_react","_interopRequireWildcard","require","_runtime","_window$BRICK_NEXT_VE","ReactUseBrick","useBrick","data","renderResult","setRenderResult","useState","mountResult","useRef","renderKey","setRenderKey","IdCounterRef","useEffect","init","__secret_internals","renderUseBrick","getUniqueId","error","console","handleHttpError","refCallback","useCallback","element","current","mountUseBrick","unmountUseBrick","undefined","tagName","WebComponent","default","createElement","key","ref","exports","ReactUseMultipleBricks","Array","isArray","Fragment","map","item","index","window","dll","BRICK_NEXT_VERSIONS","startsWith","SingleBrickAsComponentFactory","BrickAsComponentFactory","React"],"sources":["../../src/ReactUseBrick.tsx"],"sourcesContent":["import React, {\n MutableRefObject,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport type { UseSingleBrickConf } from \"@next-core/types\";\nimport { __secret_internals, handleHttpError } from \"@next-core/runtime\";\n\nexport interface ReactUseBrickProps {\n useBrick: UseSingleBrickConf;\n data?: unknown;\n}\n\n// Note: always synchronize code in LegacyUseBrick:\n// `bricks/v2-adapter/src/data-providers/legacy-brick-kit/getLegacyUseBrick.ts`\nlet ReactUseBrick = function ReactUseBrick({\n useBrick,\n data,\n}: ReactUseBrickProps): React.ReactElement | null {\n const [renderResult, setRenderResult] =\n useState<__secret_internals.RenderUseBrickResult | null>(null);\n const mountResult = useRef<__secret_internals.MountUseBrickResult>();\n const [renderKey, setRenderKey] = useState<number>();\n const IdCounterRef = useRef(0);\n\n useEffect(() => {\n async function init() {\n try {\n setRenderResult(\n await __secret_internals.renderUseBrick(useBrick, data)\n );\n setRenderKey(getUniqueId(IdCounterRef));\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Render useBrick failed:\", useBrick, \"with data:\", data);\n handleHttpError(error);\n }\n }\n init();\n }, [data, useBrick]);\n\n const refCallback = useCallback(\n (element: HTMLElement | null) => {\n if (element) {\n mountResult.current = __secret_internals.mountUseBrick(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n renderResult!,\n element\n );\n } else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n __secret_internals.unmountUseBrick(renderResult!, mountResult.current!);\n mountResult.current = undefined;\n }\n },\n [renderResult]\n );\n\n if (!renderResult) {\n // Fallback when loading/\n return null;\n // return <span>🌀 Loading...</span>;\n }\n\n const { tagName } = renderResult;\n if (tagName === null) {\n return null;\n }\n\n const WebComponent = tagName as any;\n return <WebComponent key={renderKey} ref={refCallback} />;\n};\n\nfunction getUniqueId(ref: MutableRefObject<number>): number {\n return ++ref.current;\n}\n\nexport interface ReactUseMultipleBricksProps {\n useBrick: UseSingleBrickConf | UseSingleBrickConf[];\n data?: unknown;\n}\n\nlet ReactUseMultipleBricks = function ReactUseMultipleBricks({\n useBrick,\n data,\n}: ReactUseMultipleBricksProps): React.ReactElement | null {\n if (Array.isArray(useBrick)) {\n return (\n <>\n {useBrick.map((item, index) => (\n <ReactUseBrick key={index} useBrick={item} data={data} />\n ))}\n </>\n );\n }\n return <ReactUseBrick useBrick={useBrick} data={data} />;\n};\n\n// istanbul ignore next\n// Make v3 bricks compatible with Brick Next v2.\nif (\n (window as any).dll &&\n window.BRICK_NEXT_VERSIONS?.[\"brick-container\"]?.startsWith(\"2.\")\n) {\n const { SingleBrickAsComponentFactory, BrickAsComponentFactory } = (\n window as any\n ).dll(\"tYg3\");\n if (SingleBrickAsComponentFactory && BrickAsComponentFactory) {\n ReactUseBrick = SingleBrickAsComponentFactory(React);\n ReactUseMultipleBricks = BrickAsComponentFactory(React);\n }\n}\n\nexport { ReactUseBrick, ReactUseMultipleBricks };\n"],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
+ var _window$BRICK_NEXT_VE;
2
3
  import React, { useCallback, useEffect, useRef, useState } from "react";
3
4
  import { __secret_internals, handleHttpError } from "@next-core/runtime";
4
5
  // Note: always synchronize code in LegacyUseBrick:
5
6
  // `bricks/v2-adapter/src/data-providers/legacy-brick-kit/getLegacyUseBrick.ts`
6
- export function ReactUseBrick(_ref) {
7
+ var ReactUseBrick = function ReactUseBrick(_ref) {
7
8
  var {
8
9
  useBrick,
9
10
  data
@@ -59,11 +60,11 @@ export function ReactUseBrick(_ref) {
59
60
  key: renderKey,
60
61
  ref: refCallback
61
62
  });
62
- }
63
+ };
63
64
  function getUniqueId(ref) {
64
65
  return ++ref.current;
65
66
  }
66
- export function ReactUseMultipleBricks(_ref2) {
67
+ var ReactUseMultipleBricks = function ReactUseMultipleBricks(_ref2) {
67
68
  var {
68
69
  useBrick,
69
70
  data
@@ -79,5 +80,19 @@ export function ReactUseMultipleBricks(_ref2) {
79
80
  useBrick: useBrick,
80
81
  data: data
81
82
  });
83
+ };
84
+
85
+ // istanbul ignore next
86
+ // Make v3 bricks compatible with Brick Next v2.
87
+ if (window.dll && (_window$BRICK_NEXT_VE = window.BRICK_NEXT_VERSIONS) !== null && _window$BRICK_NEXT_VE !== void 0 && (_window$BRICK_NEXT_VE = _window$BRICK_NEXT_VE["brick-container"]) !== null && _window$BRICK_NEXT_VE !== void 0 && _window$BRICK_NEXT_VE.startsWith("2.")) {
88
+ var {
89
+ SingleBrickAsComponentFactory,
90
+ BrickAsComponentFactory
91
+ } = window.dll("tYg3");
92
+ if (SingleBrickAsComponentFactory && BrickAsComponentFactory) {
93
+ ReactUseBrick = SingleBrickAsComponentFactory(React);
94
+ ReactUseMultipleBricks = BrickAsComponentFactory(React);
95
+ }
82
96
  }
97
+ export { ReactUseBrick, ReactUseMultipleBricks };
83
98
  //# sourceMappingURL=ReactUseBrick.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReactUseBrick.js","names":["React","useCallback","useEffect","useRef","useState","__secret_internals","handleHttpError","ReactUseBrick","_ref","useBrick","data","renderResult","setRenderResult","mountResult","renderKey","setRenderKey","IdCounterRef","init","_init","apply","arguments","_asyncToGenerator","renderUseBrick","getUniqueId","error","console","refCallback","element","current","mountUseBrick","unmountUseBrick","undefined","tagName","WebComponent","createElement","key","ref","ReactUseMultipleBricks","_ref2","Array","isArray","Fragment","map","item","index"],"sources":["../../src/ReactUseBrick.tsx"],"sourcesContent":["import React, {\n MutableRefObject,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport type { UseSingleBrickConf } from \"@next-core/types\";\nimport { __secret_internals, handleHttpError } from \"@next-core/runtime\";\n\nexport interface ReactUseBrickProps {\n useBrick: UseSingleBrickConf;\n data?: unknown;\n}\n\n// Note: always synchronize code in LegacyUseBrick:\n// `bricks/v2-adapter/src/data-providers/legacy-brick-kit/getLegacyUseBrick.ts`\nexport function ReactUseBrick({\n useBrick,\n data,\n}: ReactUseBrickProps): React.ReactElement | null {\n const [renderResult, setRenderResult] =\n useState<__secret_internals.RenderUseBrickResult | null>(null);\n const mountResult = useRef<__secret_internals.MountUseBrickResult>();\n const [renderKey, setRenderKey] = useState<number>();\n const IdCounterRef = useRef(0);\n\n useEffect(() => {\n async function init() {\n try {\n setRenderResult(\n await __secret_internals.renderUseBrick(useBrick, data)\n );\n setRenderKey(getUniqueId(IdCounterRef));\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Render useBrick failed:\", useBrick, \"with data:\", data);\n handleHttpError(error);\n }\n }\n init();\n }, [data, useBrick]);\n\n const refCallback = useCallback(\n (element: HTMLElement | null) => {\n if (element) {\n mountResult.current = __secret_internals.mountUseBrick(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n renderResult!,\n element\n );\n } else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n __secret_internals.unmountUseBrick(renderResult!, mountResult.current!);\n mountResult.current = undefined;\n }\n },\n [renderResult]\n );\n\n if (!renderResult) {\n // Fallback when loading/\n return null;\n // return <span>🌀 Loading...</span>;\n }\n\n const { tagName } = renderResult;\n if (tagName === null) {\n return null;\n }\n\n const WebComponent = tagName as any;\n return <WebComponent key={renderKey} ref={refCallback} />;\n}\n\nfunction getUniqueId(ref: MutableRefObject<number>): number {\n return ++ref.current;\n}\n\nexport interface ReactUseMultipleBricksProps {\n useBrick: UseSingleBrickConf | UseSingleBrickConf[];\n data?: unknown;\n}\n\nexport function ReactUseMultipleBricks({\n useBrick,\n data,\n}: ReactUseMultipleBricksProps): React.ReactElement | null {\n if (Array.isArray(useBrick)) {\n return (\n <>\n {useBrick.map((item, index) => (\n <ReactUseBrick key={index} useBrick={item} data={data} />\n ))}\n </>\n );\n }\n return <ReactUseBrick useBrick={useBrick} data={data} />;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ReactUseBrick.js","names":["React","useCallback","useEffect","useRef","useState","__secret_internals","handleHttpError","ReactUseBrick","_ref","useBrick","data","renderResult","setRenderResult","mountResult","renderKey","setRenderKey","IdCounterRef","init","_init","apply","arguments","_asyncToGenerator","renderUseBrick","getUniqueId","error","console","refCallback","element","current","mountUseBrick","unmountUseBrick","undefined","tagName","WebComponent","createElement","key","ref","ReactUseMultipleBricks","_ref2","Array","isArray","Fragment","map","item","index","window","dll","_window$BRICK_NEXT_VE","BRICK_NEXT_VERSIONS","startsWith","SingleBrickAsComponentFactory","BrickAsComponentFactory"],"sources":["../../src/ReactUseBrick.tsx"],"sourcesContent":["import React, {\n MutableRefObject,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport type { UseSingleBrickConf } from \"@next-core/types\";\nimport { __secret_internals, handleHttpError } from \"@next-core/runtime\";\n\nexport interface ReactUseBrickProps {\n useBrick: UseSingleBrickConf;\n data?: unknown;\n}\n\n// Note: always synchronize code in LegacyUseBrick:\n// `bricks/v2-adapter/src/data-providers/legacy-brick-kit/getLegacyUseBrick.ts`\nlet ReactUseBrick = function ReactUseBrick({\n useBrick,\n data,\n}: ReactUseBrickProps): React.ReactElement | null {\n const [renderResult, setRenderResult] =\n useState<__secret_internals.RenderUseBrickResult | null>(null);\n const mountResult = useRef<__secret_internals.MountUseBrickResult>();\n const [renderKey, setRenderKey] = useState<number>();\n const IdCounterRef = useRef(0);\n\n useEffect(() => {\n async function init() {\n try {\n setRenderResult(\n await __secret_internals.renderUseBrick(useBrick, data)\n );\n setRenderKey(getUniqueId(IdCounterRef));\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Render useBrick failed:\", useBrick, \"with data:\", data);\n handleHttpError(error);\n }\n }\n init();\n }, [data, useBrick]);\n\n const refCallback = useCallback(\n (element: HTMLElement | null) => {\n if (element) {\n mountResult.current = __secret_internals.mountUseBrick(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n renderResult!,\n element\n );\n } else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n __secret_internals.unmountUseBrick(renderResult!, mountResult.current!);\n mountResult.current = undefined;\n }\n },\n [renderResult]\n );\n\n if (!renderResult) {\n // Fallback when loading/\n return null;\n // return <span>🌀 Loading...</span>;\n }\n\n const { tagName } = renderResult;\n if (tagName === null) {\n return null;\n }\n\n const WebComponent = tagName as any;\n return <WebComponent key={renderKey} ref={refCallback} />;\n};\n\nfunction getUniqueId(ref: MutableRefObject<number>): number {\n return ++ref.current;\n}\n\nexport interface ReactUseMultipleBricksProps {\n useBrick: UseSingleBrickConf | UseSingleBrickConf[];\n data?: unknown;\n}\n\nlet ReactUseMultipleBricks = function ReactUseMultipleBricks({\n useBrick,\n data,\n}: ReactUseMultipleBricksProps): React.ReactElement | null {\n if (Array.isArray(useBrick)) {\n return (\n <>\n {useBrick.map((item, index) => (\n <ReactUseBrick key={index} useBrick={item} data={data} />\n ))}\n </>\n );\n }\n return <ReactUseBrick useBrick={useBrick} data={data} />;\n};\n\n// istanbul ignore next\n// Make v3 bricks compatible with Brick Next v2.\nif (\n (window as any).dll &&\n window.BRICK_NEXT_VERSIONS?.[\"brick-container\"]?.startsWith(\"2.\")\n) {\n const { SingleBrickAsComponentFactory, BrickAsComponentFactory } = (\n window as any\n ).dll(\"tYg3\");\n if (SingleBrickAsComponentFactory && BrickAsComponentFactory) {\n ReactUseBrick = SingleBrickAsComponentFactory(React);\n ReactUseMultipleBricks = BrickAsComponentFactory(React);\n }\n}\n\nexport { ReactUseBrick, ReactUseMultipleBricks };\n"],"mappings":"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"}
@@ -4,9 +4,10 @@ export interface ReactUseBrickProps {
4
4
  useBrick: UseSingleBrickConf;
5
5
  data?: unknown;
6
6
  }
7
- export declare function ReactUseBrick({ useBrick, data, }: ReactUseBrickProps): React.ReactElement | null;
7
+ declare let ReactUseBrick: ({ useBrick, data, }: ReactUseBrickProps) => React.ReactElement | null;
8
8
  export interface ReactUseMultipleBricksProps {
9
9
  useBrick: UseSingleBrickConf | UseSingleBrickConf[];
10
10
  data?: unknown;
11
11
  }
12
- export declare function ReactUseMultipleBricks({ useBrick, data, }: ReactUseMultipleBricksProps): React.ReactElement | null;
12
+ declare let ReactUseMultipleBricks: ({ useBrick, data, }: ReactUseMultipleBricksProps) => React.ReactElement | null;
13
+ export { ReactUseBrick, ReactUseMultipleBricks };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-core/react-runtime",
3
- "version": "1.0.55",
3
+ "version": "1.0.57",
4
4
  "homepage": "https://github.com/easyops-cn/next-core/tree/v3/packages/react-runtime",
5
5
  "license": "GPL-3.0",
6
6
  "repository": {
@@ -46,5 +46,5 @@
46
46
  "@next-core/build-next-libs": "^1.0.6",
47
47
  "@next-core/test-next": "^1.0.8"
48
48
  },
49
- "gitHead": "c0d55765acc79bbc1ca232ba899b3cae3fa7a207"
49
+ "gitHead": "8476495c3c5f4519aae5b2fc5acdd2c72cea90b3"
50
50
  }