@wixc3/react-board
Advanced tools
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"react-error-handled-render.d.ts","sourceRoot":"","sources":["../src/react-error-handled-render.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,eAAO,MAAM,0BAA0B,YAAmB,MAAM,YAAY,aAAa,WAAW,wBAmBnG,CAAC"} | ||
| {"version":3,"file":"react-error-handled-render.d.ts","sourceRoot":"","sources":["../src/react-error-handled-render.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,eAAO,MAAM,0BAA0B,YAAmB,MAAM,YAAY,aAAa,WAAW,wBAuBnG,CAAC"} |
@@ -10,10 +10,15 @@ "use strict"; | ||
| const client_1 = __importDefault(require("react-dom/client")); | ||
| const reactRootByContainer = new WeakMap(); | ||
| const reactErrorHandledRendering = async (element, container) => { | ||
| if (client_1.default.createRoot) { | ||
| // react 18+ | ||
| const reactRoot = client_1.default.createRoot(container); | ||
| const reactRoot = reactRootByContainer.get(container) || client_1.default.createRoot(container); | ||
| reactRootByContainer.set(container, reactRoot); | ||
| await new Promise((resolve, reject) => { | ||
| reactRoot.render(react_1.default.createElement(ErrorBoundary, { onMount: resolve, reportError: reject }, element)); | ||
| reactRoot === null || reactRoot === void 0 ? void 0 : reactRoot.render(react_1.default.createElement(ErrorBoundary, { onRender: resolve, reportError: reject }, element)); | ||
| }); | ||
| return () => reactRoot.unmount(); | ||
| return () => { | ||
| reactRoot === null || reactRoot === void 0 ? void 0 : reactRoot.unmount(); | ||
| reactRootByContainer.delete(container); | ||
| }; | ||
| } | ||
@@ -43,4 +48,8 @@ else { | ||
| var _a, _b; | ||
| (_b = (_a = this.props).onMount) === null || _b === void 0 ? void 0 : _b.call(_a); | ||
| (_b = (_a = this.props).onRender) === null || _b === void 0 ? void 0 : _b.call(_a); | ||
| } | ||
| componentDidUpdate() { | ||
| var _a, _b; | ||
| (_b = (_a = this.props).onRender) === null || _b === void 0 ? void 0 : _b.call(_a); | ||
| } | ||
| render() { | ||
@@ -47,0 +56,0 @@ return this.state.hasError ? null : this.props.children; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"react-error-handled-render.js","sourceRoot":"","sources":["../src/react-error-handled-render.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,0DAAiC;AACjC,8DAA8C;AAEvC,MAAM,0BAA0B,GAAG,KAAK,EAAE,OAA2B,EAAE,SAAsB,EAAE,EAAE;IACpG,IAAI,gBAAc,CAAC,UAAU,EAAE;QAC3B,YAAY;QACZ,MAAM,SAAS,GAAG,gBAAc,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACvD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxC,SAAS,CAAC,MAAM,CACZ,8BAAC,aAAa,IAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,IAC/C,OAAO,CACI,CACnB,CAAC;QACN,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;KACpC;SAAM;QACH,YAAY;QACZ,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxC,mBAAQ,CAAC,MAAM,CAAC,8BAAC,aAAa,IAAC,WAAW,EAAE,MAAM,IAAG,OAAO,CAAiB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACvG,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE,CAAC,mBAAQ,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;KAC3D;AACL,CAAC,CAAC;AAnBW,QAAA,0BAA0B,8BAmBrC;AAOF,MAAM,aAAc,SAAQ,eAAK,CAAC,SAA4E;IAA9G;;QACoB,UAAK,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAahD,CAAC;IAZG,MAAM,CAAC,wBAAwB;QAC3B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC9B,CAAC;IACe,iBAAiB,CAAC,KAAc,EAAE,SAA0B;;QACxE,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,WAAW,mDAAG,KAAK,EAAE,SAAS,CAAC,CAAC;IAC/C,CAAC;IACe,iBAAiB;;QAC7B,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,OAAO,kDAAI,CAAC;IAC3B,CAAC;IACe,MAAM;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC5D,CAAC;CACJ"} | ||
| {"version":3,"file":"react-error-handled-render.js","sourceRoot":"","sources":["../src/react-error-handled-render.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,0DAAiC;AACjC,8DAA8C;AAE9C,MAAM,oBAAoB,GAAG,IAAI,OAAO,EAAoC,CAAC;AAEtE,MAAM,0BAA0B,GAAG,KAAK,EAAE,OAA2B,EAAE,SAAsB,EAAE,EAAE;IACpG,IAAI,gBAAc,CAAC,UAAU,EAAE;QAC3B,YAAY;QACZ,MAAM,SAAS,GAAG,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,gBAAc,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC9F,oBAAoB,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC/C,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,CACb,8BAAC,aAAa,IAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,IAChD,OAAO,CACI,CACnB,CAAC;QACN,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE;YACR,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,EAAE,CAAC;YACrB,oBAAoB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC,CAAC;KACL;SAAM;QACH,YAAY;QACZ,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxC,mBAAQ,CAAC,MAAM,CAAC,8BAAC,aAAa,IAAC,WAAW,EAAE,MAAM,IAAG,OAAO,CAAiB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACvG,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE,CAAC,mBAAQ,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;KAC3D;AACL,CAAC,CAAC;AAvBW,QAAA,0BAA0B,8BAuBrC;AAOF,MAAM,aAAc,SAAQ,eAAK,CAAC,SAA4E;IAA9G;;QACoB,UAAK,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAgBhD,CAAC;IAfG,MAAM,CAAC,wBAAwB;QAC3B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC9B,CAAC;IACe,iBAAiB,CAAC,KAAc,EAAE,SAA0B;;QACxE,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,WAAW,mDAAG,KAAK,EAAE,SAAS,CAAC,CAAC;IAC/C,CAAC;IACe,iBAAiB;;QAC7B,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,QAAQ,kDAAI,CAAC;IAC5B,CAAC;IACe,kBAAkB;;QAC9B,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,QAAQ,kDAAI,CAAC;IAC5B,CAAC;IACe,MAAM;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC5D,CAAC;CACJ"} |
+2
-2
| { | ||
| "name": "@wixc3/react-board", | ||
| "description": "Library for creation of React component boards", | ||
| "version": "2.0.5", | ||
| "version": "2.1.2", | ||
| "main": "dist/index.js", | ||
@@ -11,3 +11,3 @@ "peerDependencies": { | ||
| "dependencies": { | ||
| "@wixc3/board-core": "^2.0.5" | ||
| "@wixc3/board-core": "^2.1.2" | ||
| }, | ||
@@ -14,0 +14,0 @@ "files": [ |
@@ -5,9 +5,12 @@ import React from 'react'; | ||
| const reactRootByContainer = new WeakMap<HTMLElement, ReactDOMClient.Root>(); | ||
| export const reactErrorHandledRendering = async (element: React.ReactElement, container: HTMLElement) => { | ||
| if (ReactDOMClient.createRoot) { | ||
| // react 18+ | ||
| const reactRoot = ReactDOMClient.createRoot(container); | ||
| const reactRoot = reactRootByContainer.get(container) || ReactDOMClient.createRoot(container); | ||
| reactRootByContainer.set(container, reactRoot); | ||
| await new Promise<void>((resolve, reject) => { | ||
| reactRoot.render( | ||
| <ErrorBoundary onMount={resolve} reportError={reject}> | ||
| reactRoot?.render( | ||
| <ErrorBoundary onRender={resolve} reportError={reject}> | ||
| {element} | ||
@@ -17,3 +20,6 @@ </ErrorBoundary> | ||
| }); | ||
| return () => reactRoot.unmount(); | ||
| return () => { | ||
| reactRoot?.unmount(); | ||
| reactRootByContainer.delete(container); | ||
| }; | ||
| } else { | ||
@@ -29,3 +35,3 @@ // react <18 | ||
| interface ErrorBoundryProps { | ||
| onMount?(): void; | ||
| onRender?(): void; | ||
| reportError?(error: unknown, errorInfo: React.ErrorInfo): void; | ||
@@ -43,4 +49,7 @@ } | ||
| public override componentDidMount() { | ||
| this.props.onMount?.(); | ||
| this.props.onRender?.(); | ||
| } | ||
| public override componentDidUpdate() { | ||
| this.props.onRender?.(); | ||
| } | ||
| public override render() { | ||
@@ -47,0 +56,0 @@ return this.state.hasError ? null : this.props.children; |
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
16936
7.08%232
7.91%0
-100%Updated