@next-core/react-runtime 1.4.12 → 1.5.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.
@@ -12,6 +12,7 @@ var _runtime = require("@next-core/runtime");
12
12
  let ReactUseBrick = exports.ReactUseBrick = function ReactUseBrick({
13
13
  useBrick,
14
14
  data,
15
+ errorBoundary,
15
16
  refCallback,
16
17
  ignoredCallback
17
18
  }) {
@@ -27,7 +28,7 @@ let ReactUseBrick = exports.ReactUseBrick = function ReactUseBrick({
27
28
  let ignore = false;
28
29
  async function init() {
29
30
  try {
30
- const newRender = await _runtime.__secret_internals.renderUseBrick(useBrick, data);
31
+ const newRender = await _runtime.__secret_internals.renderUseBrick(useBrick, data, errorBoundary);
31
32
  if (ignore) {
32
33
  return;
33
34
  }
@@ -45,7 +46,7 @@ let ReactUseBrick = exports.ReactUseBrick = function ReactUseBrick({
45
46
  return () => {
46
47
  ignore = true;
47
48
  };
48
- }, [data, useBrick, initialRenderId]);
49
+ }, [data, useBrick, initialRenderId, errorBoundary]);
49
50
  const _refCallback = (0, _react.useCallback)(element => {
50
51
  if (element) {
51
52
  mountResult.current = _runtime.__secret_internals.mountUseBrick(
@@ -86,18 +87,21 @@ function isTheSameRender(initialRenderId) {
86
87
  }
87
88
  let ReactUseMultipleBricks = exports.ReactUseMultipleBricks = function ReactUseMultipleBricks({
88
89
  useBrick,
89
- data
90
+ data,
91
+ errorBoundary
90
92
  }) {
91
93
  if (Array.isArray(useBrick)) {
92
94
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, useBrick.map((item, index) => /*#__PURE__*/_react.default.createElement(ReactUseBrick, {
93
95
  key: index,
94
96
  useBrick: item,
95
- data: data
97
+ data: data,
98
+ errorBoundary: errorBoundary
96
99
  })));
97
100
  }
98
101
  return /*#__PURE__*/_react.default.createElement(ReactUseBrick, {
99
102
  useBrick: useBrick,
100
- data: data
103
+ data: data,
104
+ errorBoundary: errorBoundary
101
105
  });
102
106
  };
103
107
 
@@ -1 +1 @@
1
- {"version":3,"file":"ReactUseBrick.js","names":["_react","_interopRequireWildcard","require","_runtime","ReactUseBrick","exports","useBrick","data","refCallback","ignoredCallback","renderResult","setRenderResult","useState","mountResult","useRef","renderKey","setRenderKey","IdCounterRef","initialRenderId","useMemo","_secret_internals$ge","__secret_internals","getRenderId","call","useEffect","ignore","init","newRender","renderUseBrick","getUniqueId","error","isTheSameRender","console","handleHttpError","_refCallback","useCallback","element","current","mountUseBrick","unmountUseBrick","undefined","tagName","WebComponent","default","createElement","key","ref","_secret_internals$ge2","newRenderId","ReactUseMultipleBricks","Array","isArray","Fragment","map","item","index","v2Kit","getV2RuntimeFromDll","SingleBrickAsComponentFactory","BrickAsComponentFactory","React"],"sources":["../../src/ReactUseBrick.tsx"],"sourcesContent":["import React, {\n MutableRefObject,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport type { UseSingleBrickConf } from \"@next-core/types\";\nimport {\n __secret_internals,\n handleHttpError,\n getV2RuntimeFromDll,\n} from \"@next-core/runtime\";\n\nexport type { UseSingleBrickConf };\n\nexport interface ReactUseBrickProps {\n useBrick: UseSingleBrickConf;\n data?: unknown;\n refCallback?: (element: HTMLElement | null) => void;\n ignoredCallback?: () => void;\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 refCallback,\n ignoredCallback,\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 const initialRenderId = useMemo(() => __secret_internals.getRenderId?.(), []);\n\n useEffect(() => {\n let ignore = false;\n async function init() {\n try {\n const newRender = await __secret_internals.renderUseBrick(\n useBrick,\n data\n );\n if (ignore) {\n return;\n }\n setRenderResult(newRender);\n setRenderKey(getUniqueId(IdCounterRef));\n } catch (error) {\n if (isTheSameRender(initialRenderId)) {\n // eslint-disable-next-line no-console\n console.error(\n \"Render useBrick failed:\",\n useBrick,\n \"with data:\",\n data\n );\n handleHttpError(error);\n }\n }\n }\n init();\n return () => {\n ignore = true;\n };\n }, [data, useBrick, initialRenderId]);\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 refCallback?.(element);\n },\n [refCallback, 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 ignoredCallback?.();\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\nfunction isTheSameRender(initialRenderId: string | undefined): boolean {\n const newRenderId = __secret_internals.getRenderId?.();\n return !initialRenderId || !newRenderId || initialRenderId === newRenderId;\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// Make v3 bricks compatible with Brick Next v2.\n// istanbul ignore next\nconst v2Kit = getV2RuntimeFromDll();\n// istanbul ignore next\nif (v2Kit) {\n const { SingleBrickAsComponentFactory, BrickAsComponentFactory } = v2Kit;\n if (SingleBrickAsComponentFactory && BrickAsComponentFactory) {\n ReactUseBrick = SingleBrickAsComponentFactory(React);\n ReactUseMultipleBricks = BrickAsComponentFactory(React);\n }\n}\n\nexport { ReactUseBrick, ReactUseMultipleBricks };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ReactUseBrick.js","names":["_react","_interopRequireWildcard","require","_runtime","ReactUseBrick","exports","useBrick","data","errorBoundary","refCallback","ignoredCallback","renderResult","setRenderResult","useState","mountResult","useRef","renderKey","setRenderKey","IdCounterRef","initialRenderId","useMemo","_secret_internals$ge","__secret_internals","getRenderId","call","useEffect","ignore","init","newRender","renderUseBrick","getUniqueId","error","isTheSameRender","console","handleHttpError","_refCallback","useCallback","element","current","mountUseBrick","unmountUseBrick","undefined","tagName","WebComponent","default","createElement","key","ref","_secret_internals$ge2","newRenderId","ReactUseMultipleBricks","Array","isArray","Fragment","map","item","index","v2Kit","getV2RuntimeFromDll","SingleBrickAsComponentFactory","BrickAsComponentFactory","React"],"sources":["../../src/ReactUseBrick.tsx"],"sourcesContent":["import React, {\n MutableRefObject,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport type { UseSingleBrickConf } from \"@next-core/types\";\nimport {\n __secret_internals,\n handleHttpError,\n getV2RuntimeFromDll,\n} from \"@next-core/runtime\";\n\nexport type { UseSingleBrickConf };\n\nexport interface ReactUseBrickProps {\n useBrick: UseSingleBrickConf;\n data?: unknown;\n errorBoundary?: boolean;\n refCallback?: (element: HTMLElement | null) => void;\n ignoredCallback?: () => void;\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 errorBoundary,\n refCallback,\n ignoredCallback,\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 const initialRenderId = useMemo(() => __secret_internals.getRenderId?.(), []);\n\n useEffect(() => {\n let ignore = false;\n async function init() {\n try {\n const newRender = await __secret_internals.renderUseBrick(\n useBrick,\n data,\n errorBoundary\n );\n if (ignore) {\n return;\n }\n setRenderResult(newRender);\n setRenderKey(getUniqueId(IdCounterRef));\n } catch (error) {\n if (isTheSameRender(initialRenderId)) {\n // eslint-disable-next-line no-console\n console.error(\n \"Render useBrick failed:\",\n useBrick,\n \"with data:\",\n data\n );\n handleHttpError(error);\n }\n }\n }\n init();\n return () => {\n ignore = true;\n };\n }, [data, useBrick, initialRenderId, errorBoundary]);\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 refCallback?.(element);\n },\n [refCallback, 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 ignoredCallback?.();\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\nfunction isTheSameRender(initialRenderId: string | undefined): boolean {\n const newRenderId = __secret_internals.getRenderId?.();\n return !initialRenderId || !newRenderId || initialRenderId === newRenderId;\n}\n\nexport interface ReactUseMultipleBricksProps {\n useBrick: UseSingleBrickConf | UseSingleBrickConf[];\n data?: unknown;\n errorBoundary?: boolean;\n}\n\nlet ReactUseMultipleBricks = function ReactUseMultipleBricks({\n useBrick,\n data,\n errorBoundary,\n}: ReactUseMultipleBricksProps): React.ReactElement | null {\n if (Array.isArray(useBrick)) {\n return (\n <>\n {useBrick.map((item, index) => (\n <ReactUseBrick\n key={index}\n useBrick={item}\n data={data}\n errorBoundary={errorBoundary}\n />\n ))}\n </>\n );\n }\n return (\n <ReactUseBrick\n useBrick={useBrick}\n data={data}\n errorBoundary={errorBoundary}\n />\n );\n};\n\n// Make v3 bricks compatible with Brick Next v2.\n// istanbul ignore next\nconst v2Kit = getV2RuntimeFromDll();\n// istanbul ignore next\nif (v2Kit) {\n const { SingleBrickAsComponentFactory, BrickAsComponentFactory } = v2Kit;\n if (SingleBrickAsComponentFactory && BrickAsComponentFactory) {\n ReactUseBrick = SingleBrickAsComponentFactory(React);\n ReactUseMultipleBricks = BrickAsComponentFactory(React);\n }\n}\n\nexport { ReactUseBrick, ReactUseMultipleBricks };\n"],"mappings":"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","ignoreList":[]}
@@ -7,6 +7,7 @@ var ReactUseBrick = function ReactUseBrick(_ref) {
7
7
  var {
8
8
  useBrick,
9
9
  data,
10
+ errorBoundary,
10
11
  refCallback,
11
12
  ignoredCallback
12
13
  } = _ref;
@@ -26,7 +27,7 @@ var ReactUseBrick = function ReactUseBrick(_ref) {
26
27
  function _init() {
27
28
  _init = _asyncToGenerator(function* () {
28
29
  try {
29
- var newRender = yield __secret_internals.renderUseBrick(useBrick, data);
30
+ var newRender = yield __secret_internals.renderUseBrick(useBrick, data, errorBoundary);
30
31
  if (ignore) {
31
32
  return;
32
33
  }
@@ -46,7 +47,7 @@ var ReactUseBrick = function ReactUseBrick(_ref) {
46
47
  return () => {
47
48
  ignore = true;
48
49
  };
49
- }, [data, useBrick, initialRenderId]);
50
+ }, [data, useBrick, initialRenderId, errorBoundary]);
50
51
  var _refCallback = useCallback(element => {
51
52
  if (element) {
52
53
  mountResult.current = __secret_internals.mountUseBrick(
@@ -88,18 +89,21 @@ function isTheSameRender(initialRenderId) {
88
89
  var ReactUseMultipleBricks = function ReactUseMultipleBricks(_ref2) {
89
90
  var {
90
91
  useBrick,
91
- data
92
+ data,
93
+ errorBoundary
92
94
  } = _ref2;
93
95
  if (Array.isArray(useBrick)) {
94
96
  return /*#__PURE__*/React.createElement(React.Fragment, null, useBrick.map((item, index) => /*#__PURE__*/React.createElement(ReactUseBrick, {
95
97
  key: index,
96
98
  useBrick: item,
97
- data: data
99
+ data: data,
100
+ errorBoundary: errorBoundary
98
101
  })));
99
102
  }
100
103
  return /*#__PURE__*/React.createElement(ReactUseBrick, {
101
104
  useBrick: useBrick,
102
- data: data
105
+ data: data,
106
+ errorBoundary: errorBoundary
103
107
  });
104
108
  };
105
109
 
@@ -1 +1 @@
1
- {"version":3,"file":"ReactUseBrick.js","names":["React","useCallback","useEffect","useMemo","useRef","useState","__secret_internals","handleHttpError","getV2RuntimeFromDll","ReactUseBrick","_ref","useBrick","data","refCallback","ignoredCallback","renderResult","setRenderResult","mountResult","renderKey","setRenderKey","IdCounterRef","initialRenderId","_secret_internals$ge","getRenderId","call","ignore","init","_init","apply","arguments","_asyncToGenerator","newRender","renderUseBrick","getUniqueId","error","isTheSameRender","console","_refCallback","element","current","mountUseBrick","unmountUseBrick","undefined","tagName","WebComponent","createElement","key","ref","_secret_internals$ge2","newRenderId","ReactUseMultipleBricks","_ref2","Array","isArray","Fragment","map","item","index","v2Kit","SingleBrickAsComponentFactory","BrickAsComponentFactory"],"sources":["../../src/ReactUseBrick.tsx"],"sourcesContent":["import React, {\n MutableRefObject,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport type { UseSingleBrickConf } from \"@next-core/types\";\nimport {\n __secret_internals,\n handleHttpError,\n getV2RuntimeFromDll,\n} from \"@next-core/runtime\";\n\nexport type { UseSingleBrickConf };\n\nexport interface ReactUseBrickProps {\n useBrick: UseSingleBrickConf;\n data?: unknown;\n refCallback?: (element: HTMLElement | null) => void;\n ignoredCallback?: () => void;\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 refCallback,\n ignoredCallback,\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 const initialRenderId = useMemo(() => __secret_internals.getRenderId?.(), []);\n\n useEffect(() => {\n let ignore = false;\n async function init() {\n try {\n const newRender = await __secret_internals.renderUseBrick(\n useBrick,\n data\n );\n if (ignore) {\n return;\n }\n setRenderResult(newRender);\n setRenderKey(getUniqueId(IdCounterRef));\n } catch (error) {\n if (isTheSameRender(initialRenderId)) {\n // eslint-disable-next-line no-console\n console.error(\n \"Render useBrick failed:\",\n useBrick,\n \"with data:\",\n data\n );\n handleHttpError(error);\n }\n }\n }\n init();\n return () => {\n ignore = true;\n };\n }, [data, useBrick, initialRenderId]);\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 refCallback?.(element);\n },\n [refCallback, 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 ignoredCallback?.();\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\nfunction isTheSameRender(initialRenderId: string | undefined): boolean {\n const newRenderId = __secret_internals.getRenderId?.();\n return !initialRenderId || !newRenderId || initialRenderId === newRenderId;\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// Make v3 bricks compatible with Brick Next v2.\n// istanbul ignore next\nconst v2Kit = getV2RuntimeFromDll();\n// istanbul ignore next\nif (v2Kit) {\n const { SingleBrickAsComponentFactory, BrickAsComponentFactory } = v2Kit;\n if (SingleBrickAsComponentFactory && BrickAsComponentFactory) {\n ReactUseBrick = SingleBrickAsComponentFactory(React);\n ReactUseMultipleBricks = BrickAsComponentFactory(React);\n }\n}\n\nexport { ReactUseBrick, ReactUseMultipleBricks };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ReactUseBrick.js","names":["React","useCallback","useEffect","useMemo","useRef","useState","__secret_internals","handleHttpError","getV2RuntimeFromDll","ReactUseBrick","_ref","useBrick","data","errorBoundary","refCallback","ignoredCallback","renderResult","setRenderResult","mountResult","renderKey","setRenderKey","IdCounterRef","initialRenderId","_secret_internals$ge","getRenderId","call","ignore","init","_init","apply","arguments","_asyncToGenerator","newRender","renderUseBrick","getUniqueId","error","isTheSameRender","console","_refCallback","element","current","mountUseBrick","unmountUseBrick","undefined","tagName","WebComponent","createElement","key","ref","_secret_internals$ge2","newRenderId","ReactUseMultipleBricks","_ref2","Array","isArray","Fragment","map","item","index","v2Kit","SingleBrickAsComponentFactory","BrickAsComponentFactory"],"sources":["../../src/ReactUseBrick.tsx"],"sourcesContent":["import React, {\n MutableRefObject,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport type { UseSingleBrickConf } from \"@next-core/types\";\nimport {\n __secret_internals,\n handleHttpError,\n getV2RuntimeFromDll,\n} from \"@next-core/runtime\";\n\nexport type { UseSingleBrickConf };\n\nexport interface ReactUseBrickProps {\n useBrick: UseSingleBrickConf;\n data?: unknown;\n errorBoundary?: boolean;\n refCallback?: (element: HTMLElement | null) => void;\n ignoredCallback?: () => void;\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 errorBoundary,\n refCallback,\n ignoredCallback,\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 const initialRenderId = useMemo(() => __secret_internals.getRenderId?.(), []);\n\n useEffect(() => {\n let ignore = false;\n async function init() {\n try {\n const newRender = await __secret_internals.renderUseBrick(\n useBrick,\n data,\n errorBoundary\n );\n if (ignore) {\n return;\n }\n setRenderResult(newRender);\n setRenderKey(getUniqueId(IdCounterRef));\n } catch (error) {\n if (isTheSameRender(initialRenderId)) {\n // eslint-disable-next-line no-console\n console.error(\n \"Render useBrick failed:\",\n useBrick,\n \"with data:\",\n data\n );\n handleHttpError(error);\n }\n }\n }\n init();\n return () => {\n ignore = true;\n };\n }, [data, useBrick, initialRenderId, errorBoundary]);\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 refCallback?.(element);\n },\n [refCallback, 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 ignoredCallback?.();\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\nfunction isTheSameRender(initialRenderId: string | undefined): boolean {\n const newRenderId = __secret_internals.getRenderId?.();\n return !initialRenderId || !newRenderId || initialRenderId === newRenderId;\n}\n\nexport interface ReactUseMultipleBricksProps {\n useBrick: UseSingleBrickConf | UseSingleBrickConf[];\n data?: unknown;\n errorBoundary?: boolean;\n}\n\nlet ReactUseMultipleBricks = function ReactUseMultipleBricks({\n useBrick,\n data,\n errorBoundary,\n}: ReactUseMultipleBricksProps): React.ReactElement | null {\n if (Array.isArray(useBrick)) {\n return (\n <>\n {useBrick.map((item, index) => (\n <ReactUseBrick\n key={index}\n useBrick={item}\n data={data}\n errorBoundary={errorBoundary}\n />\n ))}\n </>\n );\n }\n return (\n <ReactUseBrick\n useBrick={useBrick}\n data={data}\n errorBoundary={errorBoundary}\n />\n );\n};\n\n// Make v3 bricks compatible with Brick Next v2.\n// istanbul ignore next\nconst v2Kit = getV2RuntimeFromDll();\n// istanbul ignore next\nif (v2Kit) {\n const { SingleBrickAsComponentFactory, BrickAsComponentFactory } = v2Kit;\n if (SingleBrickAsComponentFactory && BrickAsComponentFactory) {\n ReactUseBrick = SingleBrickAsComponentFactory(React);\n ReactUseMultipleBricks = BrickAsComponentFactory(React);\n }\n}\n\nexport { ReactUseBrick, ReactUseMultipleBricks };\n"],"mappings":"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","ignoreList":[]}
@@ -4,13 +4,15 @@ export type { UseSingleBrickConf };
4
4
  export interface ReactUseBrickProps {
5
5
  useBrick: UseSingleBrickConf;
6
6
  data?: unknown;
7
+ errorBoundary?: boolean;
7
8
  refCallback?: (element: HTMLElement | null) => void;
8
9
  ignoredCallback?: () => void;
9
10
  }
10
- declare let ReactUseBrick: ({ useBrick, data, refCallback, ignoredCallback, }: ReactUseBrickProps) => React.ReactElement | null;
11
+ declare let ReactUseBrick: ({ useBrick, data, errorBoundary, refCallback, ignoredCallback, }: ReactUseBrickProps) => React.ReactElement | null;
11
12
  export interface ReactUseMultipleBricksProps {
12
13
  useBrick: UseSingleBrickConf | UseSingleBrickConf[];
13
14
  data?: unknown;
15
+ errorBoundary?: boolean;
14
16
  }
15
- declare let ReactUseMultipleBricks: ({ useBrick, data, }: ReactUseMultipleBricksProps) => React.ReactElement | null;
17
+ declare let ReactUseMultipleBricks: ({ useBrick, data, errorBoundary, }: ReactUseMultipleBricksProps) => React.ReactElement | null;
16
18
  export { ReactUseBrick, ReactUseMultipleBricks };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-core/react-runtime",
3
- "version": "1.4.12",
3
+ "version": "1.5.0",
4
4
  "homepage": "https://github.com/easyops-cn/next-core/tree/v3/packages/react-runtime",
5
5
  "license": "GPL-3.0",
6
6
  "repository": {
@@ -38,8 +38,8 @@
38
38
  },
39
39
  "dependencies": {
40
40
  "@next-core/react-element": "^1.0.26",
41
- "@next-core/runtime": "^1.43.1",
42
- "@next-core/types": "^1.10.0",
41
+ "@next-core/runtime": "^1.44.0",
42
+ "@next-core/types": "^1.11.0",
43
43
  "react": "0.0.0-experimental-ee8509801-20230117",
44
44
  "react-dom": "0.0.0-experimental-ee8509801-20230117"
45
45
  },
@@ -50,5 +50,5 @@
50
50
  "@testing-library/react-hooks": "^8.0.1",
51
51
  "jest-fetch-mock": "^3.0.3"
52
52
  },
53
- "gitHead": "c3f3cf8af9ae920ef670a5eb448019f302f3afb1"
53
+ "gitHead": "6a69357ba0d82df72c56deb1ea84ee7b681b62a8"
54
54
  }