@xyo-network/react-error 2.81.9 → 2.82.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.
- package/dist/browser/components/ErrorBoundary/ThrownErrorBoundary.d.cts +3 -2
- package/dist/browser/components/ErrorBoundary/ThrownErrorBoundary.d.cts.map +1 -1
- package/dist/browser/components/ErrorBoundary/ThrownErrorBoundary.d.mts +3 -2
- package/dist/browser/components/ErrorBoundary/ThrownErrorBoundary.d.mts.map +1 -1
- package/dist/browser/components/ErrorBoundary/ThrownErrorBoundary.d.ts +3 -2
- package/dist/browser/components/ErrorBoundary/ThrownErrorBoundary.d.ts.map +1 -1
- package/dist/browser/components/ErrorBoundary/index.d.cts +1 -1
- package/dist/browser/components/ErrorBoundary/index.d.cts.map +1 -1
- package/dist/browser/components/ErrorBoundary/index.d.mts +1 -1
- package/dist/browser/components/ErrorBoundary/index.d.mts.map +1 -1
- package/dist/browser/components/ErrorBoundary/index.d.ts +1 -1
- package/dist/browser/components/ErrorBoundary/index.d.ts.map +1 -1
- package/dist/browser/components/ErrorRender/ErrorAlert.d.cts +2 -1
- package/dist/browser/components/ErrorRender/ErrorAlert.d.cts.map +1 -1
- package/dist/browser/components/ErrorRender/ErrorAlert.d.mts +2 -1
- package/dist/browser/components/ErrorRender/ErrorAlert.d.mts.map +1 -1
- package/dist/browser/components/ErrorRender/ErrorAlert.d.ts +2 -1
- package/dist/browser/components/ErrorRender/ErrorAlert.d.ts.map +1 -1
- package/dist/browser/components/ErrorRender/Render.d.cts +2 -1
- package/dist/browser/components/ErrorRender/Render.d.cts.map +1 -1
- package/dist/browser/components/ErrorRender/Render.d.mts +2 -1
- package/dist/browser/components/ErrorRender/Render.d.mts.map +1 -1
- package/dist/browser/components/ErrorRender/Render.d.ts +2 -1
- package/dist/browser/components/ErrorRender/Render.d.ts.map +1 -1
- package/dist/browser/components/ErrorRender/index.d.cts +3 -3
- package/dist/browser/components/ErrorRender/index.d.cts.map +1 -1
- package/dist/browser/components/ErrorRender/index.d.mts +3 -3
- package/dist/browser/components/ErrorRender/index.d.mts.map +1 -1
- package/dist/browser/components/ErrorRender/index.d.ts +3 -3
- package/dist/browser/components/ErrorRender/index.d.ts.map +1 -1
- package/dist/browser/components/index.d.cts +2 -2
- package/dist/browser/components/index.d.mts +2 -2
- package/dist/browser/components/index.d.ts +2 -2
- package/dist/browser/contexts/ErrorReporter/Context.d.cts +1 -1
- package/dist/browser/contexts/ErrorReporter/Context.d.mts +1 -1
- package/dist/browser/contexts/ErrorReporter/Context.d.ts +1 -1
- package/dist/browser/contexts/ErrorReporter/Provider.d.cts +1 -0
- package/dist/browser/contexts/ErrorReporter/Provider.d.cts.map +1 -1
- package/dist/browser/contexts/ErrorReporter/Provider.d.mts +1 -0
- package/dist/browser/contexts/ErrorReporter/Provider.d.mts.map +1 -1
- package/dist/browser/contexts/ErrorReporter/Provider.d.ts +1 -0
- package/dist/browser/contexts/ErrorReporter/Provider.d.ts.map +1 -1
- package/dist/browser/contexts/ErrorReporter/index.d.cts +3 -3
- package/dist/browser/contexts/ErrorReporter/index.d.cts.map +1 -1
- package/dist/browser/contexts/ErrorReporter/index.d.mts +3 -3
- package/dist/browser/contexts/ErrorReporter/index.d.mts.map +1 -1
- package/dist/browser/contexts/ErrorReporter/index.d.ts +3 -3
- package/dist/browser/contexts/ErrorReporter/index.d.ts.map +1 -1
- package/dist/browser/contexts/ErrorReporter/useRollbar.d.cts +1 -1
- package/dist/browser/contexts/ErrorReporter/useRollbar.d.mts +1 -1
- package/dist/browser/contexts/ErrorReporter/useRollbar.d.ts +1 -1
- package/dist/browser/contexts/index.d.cts +1 -1
- package/dist/browser/contexts/index.d.mts +1 -1
- package/dist/browser/contexts/index.d.ts +1 -1
- package/dist/browser/index.cjs +102 -52
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.d.cts +2 -2
- package/dist/browser/index.d.mts +2 -2
- package/dist/browser/index.d.ts +2 -2
- package/dist/browser/index.mjs +163 -0
- package/dist/browser/index.mjs.map +1 -0
- package/dist/neutral/components/ErrorBoundary/ThrownErrorBoundary.d.cts +3 -2
- package/dist/neutral/components/ErrorBoundary/ThrownErrorBoundary.d.cts.map +1 -1
- package/dist/neutral/components/ErrorBoundary/ThrownErrorBoundary.d.mts +3 -2
- package/dist/neutral/components/ErrorBoundary/ThrownErrorBoundary.d.mts.map +1 -1
- package/dist/neutral/components/ErrorBoundary/ThrownErrorBoundary.d.ts +3 -2
- package/dist/neutral/components/ErrorBoundary/ThrownErrorBoundary.d.ts.map +1 -1
- package/dist/neutral/components/ErrorBoundary/index.d.cts +1 -1
- package/dist/neutral/components/ErrorBoundary/index.d.cts.map +1 -1
- package/dist/neutral/components/ErrorBoundary/index.d.mts +1 -1
- package/dist/neutral/components/ErrorBoundary/index.d.mts.map +1 -1
- package/dist/neutral/components/ErrorBoundary/index.d.ts +1 -1
- package/dist/neutral/components/ErrorBoundary/index.d.ts.map +1 -1
- package/dist/neutral/components/ErrorRender/ErrorAlert.d.cts +2 -1
- package/dist/neutral/components/ErrorRender/ErrorAlert.d.cts.map +1 -1
- package/dist/neutral/components/ErrorRender/ErrorAlert.d.mts +2 -1
- package/dist/neutral/components/ErrorRender/ErrorAlert.d.mts.map +1 -1
- package/dist/neutral/components/ErrorRender/ErrorAlert.d.ts +2 -1
- package/dist/neutral/components/ErrorRender/ErrorAlert.d.ts.map +1 -1
- package/dist/neutral/components/ErrorRender/Render.d.cts +2 -1
- package/dist/neutral/components/ErrorRender/Render.d.cts.map +1 -1
- package/dist/neutral/components/ErrorRender/Render.d.mts +2 -1
- package/dist/neutral/components/ErrorRender/Render.d.mts.map +1 -1
- package/dist/neutral/components/ErrorRender/Render.d.ts +2 -1
- package/dist/neutral/components/ErrorRender/Render.d.ts.map +1 -1
- package/dist/neutral/components/ErrorRender/index.d.cts +3 -3
- package/dist/neutral/components/ErrorRender/index.d.cts.map +1 -1
- package/dist/neutral/components/ErrorRender/index.d.mts +3 -3
- package/dist/neutral/components/ErrorRender/index.d.mts.map +1 -1
- package/dist/neutral/components/ErrorRender/index.d.ts +3 -3
- package/dist/neutral/components/ErrorRender/index.d.ts.map +1 -1
- package/dist/neutral/components/index.d.cts +2 -2
- package/dist/neutral/components/index.d.mts +2 -2
- package/dist/neutral/components/index.d.ts +2 -2
- package/dist/neutral/contexts/ErrorReporter/Context.d.cts +1 -1
- package/dist/neutral/contexts/ErrorReporter/Context.d.mts +1 -1
- package/dist/neutral/contexts/ErrorReporter/Context.d.ts +1 -1
- package/dist/neutral/contexts/ErrorReporter/Provider.d.cts +1 -0
- package/dist/neutral/contexts/ErrorReporter/Provider.d.cts.map +1 -1
- package/dist/neutral/contexts/ErrorReporter/Provider.d.mts +1 -0
- package/dist/neutral/contexts/ErrorReporter/Provider.d.mts.map +1 -1
- package/dist/neutral/contexts/ErrorReporter/Provider.d.ts +1 -0
- package/dist/neutral/contexts/ErrorReporter/Provider.d.ts.map +1 -1
- package/dist/neutral/contexts/ErrorReporter/index.d.cts +3 -3
- package/dist/neutral/contexts/ErrorReporter/index.d.cts.map +1 -1
- package/dist/neutral/contexts/ErrorReporter/index.d.mts +3 -3
- package/dist/neutral/contexts/ErrorReporter/index.d.mts.map +1 -1
- package/dist/neutral/contexts/ErrorReporter/index.d.ts +3 -3
- package/dist/neutral/contexts/ErrorReporter/index.d.ts.map +1 -1
- package/dist/neutral/contexts/ErrorReporter/useRollbar.d.cts +1 -1
- package/dist/neutral/contexts/ErrorReporter/useRollbar.d.mts +1 -1
- package/dist/neutral/contexts/ErrorReporter/useRollbar.d.ts +1 -1
- package/dist/neutral/contexts/index.d.cts +1 -1
- package/dist/neutral/contexts/index.d.mts +1 -1
- package/dist/neutral/contexts/index.d.ts +1 -1
- package/dist/neutral/index.cjs +102 -52
- package/dist/neutral/index.cjs.map +1 -1
- package/dist/neutral/index.d.cts +2 -2
- package/dist/neutral/index.d.mts +2 -2
- package/dist/neutral/index.d.ts +2 -2
- package/dist/neutral/index.mjs +163 -0
- package/dist/neutral/index.mjs.map +1 -0
- package/dist/node/components/ErrorBoundary/ThrownErrorBoundary.d.cts +3 -2
- package/dist/node/components/ErrorBoundary/ThrownErrorBoundary.d.cts.map +1 -1
- package/dist/node/components/ErrorBoundary/ThrownErrorBoundary.d.mts +3 -2
- package/dist/node/components/ErrorBoundary/ThrownErrorBoundary.d.mts.map +1 -1
- package/dist/node/components/ErrorBoundary/ThrownErrorBoundary.d.ts +3 -2
- package/dist/node/components/ErrorBoundary/ThrownErrorBoundary.d.ts.map +1 -1
- package/dist/node/components/ErrorBoundary/index.d.cts +1 -1
- package/dist/node/components/ErrorBoundary/index.d.cts.map +1 -1
- package/dist/node/components/ErrorBoundary/index.d.mts +1 -1
- package/dist/node/components/ErrorBoundary/index.d.mts.map +1 -1
- package/dist/node/components/ErrorBoundary/index.d.ts +1 -1
- package/dist/node/components/ErrorBoundary/index.d.ts.map +1 -1
- package/dist/node/components/ErrorRender/ErrorAlert.d.cts +2 -1
- package/dist/node/components/ErrorRender/ErrorAlert.d.cts.map +1 -1
- package/dist/node/components/ErrorRender/ErrorAlert.d.mts +2 -1
- package/dist/node/components/ErrorRender/ErrorAlert.d.mts.map +1 -1
- package/dist/node/components/ErrorRender/ErrorAlert.d.ts +2 -1
- package/dist/node/components/ErrorRender/ErrorAlert.d.ts.map +1 -1
- package/dist/node/components/ErrorRender/Render.d.cts +2 -1
- package/dist/node/components/ErrorRender/Render.d.cts.map +1 -1
- package/dist/node/components/ErrorRender/Render.d.mts +2 -1
- package/dist/node/components/ErrorRender/Render.d.mts.map +1 -1
- package/dist/node/components/ErrorRender/Render.d.ts +2 -1
- package/dist/node/components/ErrorRender/Render.d.ts.map +1 -1
- package/dist/node/components/ErrorRender/index.d.cts +3 -3
- package/dist/node/components/ErrorRender/index.d.cts.map +1 -1
- package/dist/node/components/ErrorRender/index.d.mts +3 -3
- package/dist/node/components/ErrorRender/index.d.mts.map +1 -1
- package/dist/node/components/ErrorRender/index.d.ts +3 -3
- package/dist/node/components/ErrorRender/index.d.ts.map +1 -1
- package/dist/node/components/index.d.cts +2 -2
- package/dist/node/components/index.d.mts +2 -2
- package/dist/node/components/index.d.ts +2 -2
- package/dist/node/contexts/ErrorReporter/Context.d.cts +1 -1
- package/dist/node/contexts/ErrorReporter/Context.d.mts +1 -1
- package/dist/node/contexts/ErrorReporter/Context.d.ts +1 -1
- package/dist/node/contexts/ErrorReporter/Provider.d.cts +1 -0
- package/dist/node/contexts/ErrorReporter/Provider.d.cts.map +1 -1
- package/dist/node/contexts/ErrorReporter/Provider.d.mts +1 -0
- package/dist/node/contexts/ErrorReporter/Provider.d.mts.map +1 -1
- package/dist/node/contexts/ErrorReporter/Provider.d.ts +1 -0
- package/dist/node/contexts/ErrorReporter/Provider.d.ts.map +1 -1
- package/dist/node/contexts/ErrorReporter/index.d.cts +3 -3
- package/dist/node/contexts/ErrorReporter/index.d.cts.map +1 -1
- package/dist/node/contexts/ErrorReporter/index.d.mts +3 -3
- package/dist/node/contexts/ErrorReporter/index.d.mts.map +1 -1
- package/dist/node/contexts/ErrorReporter/index.d.ts +3 -3
- package/dist/node/contexts/ErrorReporter/index.d.ts.map +1 -1
- package/dist/node/contexts/ErrorReporter/useRollbar.d.cts +1 -1
- package/dist/node/contexts/ErrorReporter/useRollbar.d.mts +1 -1
- package/dist/node/contexts/ErrorReporter/useRollbar.d.ts +1 -1
- package/dist/node/contexts/index.d.cts +1 -1
- package/dist/node/contexts/index.d.mts +1 -1
- package/dist/node/contexts/index.d.ts +1 -1
- package/dist/node/index.cjs +101 -52
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.d.cts +2 -2
- package/dist/node/index.d.mts +2 -2
- package/dist/node/index.d.ts +2 -2
- package/dist/node/index.mjs +162 -0
- package/dist/node/index.mjs.map +1 -0
- package/package.json +13 -13
- package/src/components/ErrorBoundary/ThrownErrorBoundary.stories.tsx +8 -4
- package/src/components/ErrorBoundary/ThrownErrorBoundary.tsx +8 -7
- package/src/components/ErrorBoundary/index.ts +1 -1
- package/src/components/ErrorRender/ErrorAlert.stories.tsx +41 -0
- package/src/components/ErrorRender/ErrorAlert.tsx +35 -24
- package/src/components/ErrorRender/Render.tsx +15 -12
- package/src/components/ErrorRender/index.ts +3 -3
- package/src/components/index.ts +2 -2
- package/src/contexts/ErrorReporter/Context.ts +1 -1
- package/src/contexts/ErrorReporter/Provider.stories.tsx +11 -4
- package/src/contexts/ErrorReporter/Provider.tsx +3 -2
- package/src/contexts/ErrorReporter/index.ts +3 -3
- package/src/contexts/ErrorReporter/useRollbar.tsx +1 -1
- package/src/contexts/index.ts +1 -1
- package/src/index.ts +2 -2
- package/dist/browser/index.js +0 -121
- package/dist/browser/index.js.map +0 -1
- package/dist/neutral/index.js +0 -121
- package/dist/neutral/index.js.map +0 -1
- package/dist/node/index.js +0 -121
- package/dist/node/index.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './ErrorReporter/index.
|
|
1
|
+
export * from './ErrorReporter/index.ts';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/node/index.cjs
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
2
3
|
var __defProp = Object.defineProperty;
|
|
3
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
5
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
9
|
var __export = (target, all) => {
|
|
7
10
|
for (var name in all)
|
|
8
11
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -15,6 +18,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
18
|
}
|
|
16
19
|
return to;
|
|
17
20
|
};
|
|
21
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
22
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
23
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
24
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
25
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
26
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
27
|
+
mod
|
|
28
|
+
));
|
|
18
29
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
30
|
|
|
20
31
|
// src/index.ts
|
|
@@ -30,44 +41,50 @@ module.exports = __toCommonJS(src_exports);
|
|
|
30
41
|
|
|
31
42
|
// src/components/ErrorBoundary/ThrownErrorBoundary.tsx
|
|
32
43
|
var import_payload_model = require("@xyo-network/payload-model");
|
|
33
|
-
var
|
|
44
|
+
var import_react3 = __toESM(require("react"), 1);
|
|
34
45
|
|
|
35
46
|
// src/components/ErrorRender/ErrorAlert.tsx
|
|
36
47
|
var import_icons_material = require("@mui/icons-material");
|
|
37
48
|
var import_material = require("@mui/material");
|
|
38
49
|
var import_react_button = require("@xylabs/react-button");
|
|
39
|
-
var
|
|
40
|
-
var ErrorAlert = ({ onCancel, error, errorContext, scope, ...props }) => {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
var import_react = __toESM(require("react"), 1);
|
|
51
|
+
var ErrorAlert = /* @__PURE__ */ __name(({ title = "Whoops! Something went wrong", onCancel, error = "An unknown error occurred", errorContext, scope, ...props }) => {
|
|
52
|
+
const finalScope = scope ?? errorContext;
|
|
53
|
+
return /* @__PURE__ */ import_react.default.createElement(import_material.Alert, {
|
|
54
|
+
severity: "error",
|
|
55
|
+
...props
|
|
56
|
+
}, /* @__PURE__ */ import_react.default.createElement(import_material.AlertTitle, null, title), finalScope ? /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement(import_material.Typography, {
|
|
57
|
+
variant: "caption",
|
|
58
|
+
mr: 0.5,
|
|
59
|
+
fontWeight: "bold"
|
|
60
|
+
}, "Scope:"), /* @__PURE__ */ import_react.default.createElement(import_material.Typography, {
|
|
61
|
+
variant: "caption"
|
|
62
|
+
}, finalScope)) : null, /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement(import_material.Typography, {
|
|
63
|
+
variant: "caption",
|
|
64
|
+
mr: 0.5,
|
|
65
|
+
fontWeight: "bold"
|
|
66
|
+
}, "Error:"), /* @__PURE__ */ import_react.default.createElement(import_material.Typography, {
|
|
67
|
+
variant: "caption"
|
|
68
|
+
}, typeof error === "string" ? error : error == null ? void 0 : error.message)), onCancel ? /* @__PURE__ */ import_react.default.createElement(import_react_button.ButtonEx, {
|
|
69
|
+
variant: "outlined",
|
|
70
|
+
size: "small",
|
|
71
|
+
onClick: onCancel,
|
|
72
|
+
position: "absolute",
|
|
73
|
+
style: {
|
|
74
|
+
right: 8,
|
|
75
|
+
top: 8
|
|
76
|
+
}
|
|
77
|
+
}, /* @__PURE__ */ import_react.default.createElement(import_icons_material.ExitToApp, {
|
|
78
|
+
fontSize: "small"
|
|
79
|
+
})) : null);
|
|
80
|
+
}, "ErrorAlert");
|
|
53
81
|
|
|
54
82
|
// src/components/ErrorRender/Render.tsx
|
|
55
83
|
var import_react_flexbox = require("@xylabs/react-flexbox");
|
|
56
|
-
var
|
|
57
|
-
var
|
|
58
|
-
var ErrorRender = ({
|
|
59
|
-
onCancel,
|
|
60
|
-
error,
|
|
61
|
-
noErrorDisplay = false,
|
|
62
|
-
customError = null,
|
|
63
|
-
children,
|
|
64
|
-
errorContext,
|
|
65
|
-
scope,
|
|
66
|
-
useLocation,
|
|
67
|
-
...props
|
|
68
|
-
}) => {
|
|
84
|
+
var import_react2 = __toESM(require("react"), 1);
|
|
85
|
+
var ErrorRender = /* @__PURE__ */ __name(({ onCancel, error, noErrorDisplay = false, customError = null, children, errorContext, scope, useLocation, ...props }) => {
|
|
69
86
|
const location = useLocation == null ? void 0 : useLocation();
|
|
70
|
-
(0,
|
|
87
|
+
(0, import_react2.useEffect)(() => {
|
|
71
88
|
if (location) {
|
|
72
89
|
location.state = {
|
|
73
90
|
from: {
|
|
@@ -75,21 +92,40 @@ var ErrorRender = ({
|
|
|
75
92
|
}
|
|
76
93
|
};
|
|
77
94
|
}
|
|
78
|
-
}, [
|
|
79
|
-
|
|
80
|
-
|
|
95
|
+
}, [
|
|
96
|
+
location
|
|
97
|
+
]);
|
|
98
|
+
return error ? /* @__PURE__ */ import_react2.default.createElement(import_react_flexbox.FlexCol, {
|
|
99
|
+
alignItems: "stretch",
|
|
100
|
+
...props
|
|
101
|
+
}, noErrorDisplay ? customError : /* @__PURE__ */ import_react2.default.createElement(import_react_flexbox.FlexCol, {
|
|
102
|
+
alignItems: "center",
|
|
103
|
+
...props
|
|
104
|
+
}, /* @__PURE__ */ import_react2.default.createElement(ErrorAlert, {
|
|
105
|
+
error,
|
|
106
|
+
errorContext,
|
|
107
|
+
onCancel,
|
|
108
|
+
scope
|
|
109
|
+
}))) : /* @__PURE__ */ import_react2.default.createElement(import_react2.default.Fragment, null, children) ?? null;
|
|
110
|
+
}, "ErrorRender");
|
|
81
111
|
|
|
82
112
|
// src/components/ErrorBoundary/ThrownErrorBoundary.tsx
|
|
83
|
-
var
|
|
84
|
-
var ThrownErrorBoundary = class _ThrownErrorBoundary extends import_react2.Component {
|
|
113
|
+
var _ThrownErrorBoundary = class _ThrownErrorBoundary extends import_react3.Component {
|
|
85
114
|
state = {
|
|
86
115
|
xyoError: void 0
|
|
87
116
|
};
|
|
88
117
|
static getDerivedStateFromError(error) {
|
|
89
|
-
return {
|
|
118
|
+
return {
|
|
119
|
+
hasError: true,
|
|
120
|
+
xyoError: _ThrownErrorBoundary.normalizeError(error)
|
|
121
|
+
};
|
|
90
122
|
}
|
|
91
123
|
static normalizeError(error) {
|
|
92
|
-
return error.schema === import_payload_model.ModuleErrorSchema ? error : {
|
|
124
|
+
return error.schema === import_payload_model.ModuleErrorSchema ? error : {
|
|
125
|
+
message: error.message,
|
|
126
|
+
schema: import_payload_model.ModuleErrorSchema,
|
|
127
|
+
sources: []
|
|
128
|
+
};
|
|
93
129
|
}
|
|
94
130
|
componentDidCatch(error, errorInfo) {
|
|
95
131
|
const { rethrow, rollbar } = this.props;
|
|
@@ -102,45 +138,58 @@ var ThrownErrorBoundary = class _ThrownErrorBoundary extends import_react2.Compo
|
|
|
102
138
|
}
|
|
103
139
|
render() {
|
|
104
140
|
const { xyoError } = this.state;
|
|
105
|
-
const { children, boundaryName, errorComponent, scope } = this.props;
|
|
141
|
+
const { children, boundaryName, errorComponent, scope, title } = this.props;
|
|
106
142
|
if (xyoError) {
|
|
107
143
|
if (errorComponent) {
|
|
108
144
|
return errorComponent(xyoError);
|
|
109
145
|
}
|
|
110
|
-
return /* @__PURE__ */
|
|
146
|
+
return /* @__PURE__ */ import_react3.default.createElement(ErrorRender, {
|
|
147
|
+
error: xyoError,
|
|
148
|
+
errorContext: `${boundaryName} Boundary`,
|
|
149
|
+
scope,
|
|
150
|
+
title
|
|
151
|
+
});
|
|
111
152
|
}
|
|
112
153
|
return children;
|
|
113
154
|
}
|
|
114
155
|
};
|
|
156
|
+
__name(_ThrownErrorBoundary, "ThrownErrorBoundary");
|
|
157
|
+
var ThrownErrorBoundary = _ThrownErrorBoundary;
|
|
115
158
|
|
|
116
159
|
// src/contexts/ErrorReporter/Provider.tsx
|
|
117
|
-
var
|
|
160
|
+
var import_react5 = __toESM(require("react"), 1);
|
|
118
161
|
|
|
119
162
|
// src/contexts/ErrorReporter/Context.ts
|
|
120
|
-
var
|
|
121
|
-
var ErrorReporterContext = (0,
|
|
163
|
+
var import_react4 = require("react");
|
|
164
|
+
var ErrorReporterContext = (0, import_react4.createContext)({});
|
|
122
165
|
|
|
123
166
|
// src/contexts/ErrorReporter/Provider.tsx
|
|
124
|
-
var
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
(0, import_react4.useEffect)(() => {
|
|
167
|
+
var ErrorReporterProvider = /* @__PURE__ */ __name(({ children, rollbar }) => {
|
|
168
|
+
const [rollbarInstance, setRollBarInstance] = (0, import_react5.useState)();
|
|
169
|
+
(0, import_react5.useEffect)(() => {
|
|
128
170
|
if (rollbarInstance) {
|
|
129
171
|
setRollBarInstance(rollbarInstance);
|
|
130
172
|
}
|
|
131
|
-
}, [
|
|
132
|
-
|
|
133
|
-
|
|
173
|
+
}, [
|
|
174
|
+
rollbar,
|
|
175
|
+
rollbarInstance
|
|
176
|
+
]);
|
|
177
|
+
return /* @__PURE__ */ import_react5.default.createElement(ErrorReporterContext.Provider, {
|
|
178
|
+
value: {
|
|
179
|
+
rollbar
|
|
180
|
+
}
|
|
181
|
+
}, children);
|
|
182
|
+
}, "ErrorReporterProvider");
|
|
134
183
|
|
|
135
184
|
// src/contexts/ErrorReporter/useRollbar.tsx
|
|
136
|
-
var
|
|
137
|
-
var useRollbar = () => {
|
|
138
|
-
const context = (0,
|
|
185
|
+
var import_react6 = require("react");
|
|
186
|
+
var useRollbar = /* @__PURE__ */ __name(() => {
|
|
187
|
+
const context = (0, import_react6.useContext)(ErrorReporterContext);
|
|
139
188
|
if (context === void 0) {
|
|
140
189
|
console.warn("useRollbar must be used within a ErrorReporterContext");
|
|
141
190
|
}
|
|
142
191
|
return context ?? {};
|
|
143
|
-
};
|
|
192
|
+
}, "useRollbar");
|
|
144
193
|
// Annotate the CommonJS export names for ESM import in node:
|
|
145
194
|
0 && (module.exports = {
|
|
146
195
|
ErrorAlert,
|
package/dist/node/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/components/ErrorBoundary/ThrownErrorBoundary.tsx","../../src/components/ErrorRender/ErrorAlert.tsx","../../src/components/ErrorRender/Render.tsx","../../src/contexts/ErrorReporter/Provider.tsx","../../src/contexts/ErrorReporter/Context.ts","../../src/contexts/ErrorReporter/useRollbar.tsx"],"sourcesContent":["export * from './components/index.js'\nexport * from './contexts/index.js'\n","import { ModuleError, ModuleErrorSchema } from '@xyo-network/payload-model'\nimport { Component, ErrorInfo, ReactNode } from 'react'\nimport Rollbar from 'rollbar'\n\nimport { ErrorRender } from '../ErrorRender/index.js'\n\nexport interface ThrownErrorBoundaryProps {\n boundaryName?: string\n children: ReactNode\n errorComponent?: (e: ModuleError, boundaryName?: string) => ReactNode\n rethrow?: boolean\n rollbar?: Rollbar\n scope?: string\n}\n\nexport interface ThrownErrorBoundaryState {\n xyoError?: ModuleError\n}\n\nexport class ThrownErrorBoundary extends Component<ThrownErrorBoundaryProps, ThrownErrorBoundaryState> {\n override state: ThrownErrorBoundaryState = {\n xyoError: undefined,\n }\n\n static getDerivedStateFromError(error: Error) {\n return { hasError: true, xyoError: ThrownErrorBoundary.normalizeError(error) } as ThrownErrorBoundaryState\n }\n\n static normalizeError(error: Error | ModuleError): ModuleError {\n return (\n (error as ModuleError).schema === ModuleErrorSchema ?\n error\n : { message: error.message, schema: ModuleErrorSchema, sources: [] }) as ModuleError\n }\n\n override componentDidCatch(error: Error, errorInfo: ErrorInfo) {\n const { rethrow, rollbar } = this.props\n const { xyoError } = this.state\n\n rollbar?.error(error)\n\n console.error('Error:', xyoError, errorInfo)\n if (rethrow) {\n throw error\n }\n }\n\n override render() {\n const { xyoError } = this.state\n const { children, boundaryName, errorComponent, scope } = this.props\n if (xyoError) {\n if (errorComponent) {\n return errorComponent(xyoError)\n }\n return <ErrorRender error={xyoError} errorContext={`${boundaryName} Boundary`} scope={scope} />\n }\n\n return children\n }\n}\n","import { ExitToApp as ExitIcon } from '@mui/icons-material'\nimport { Alert, AlertProps, AlertTitle, Typography } from '@mui/material'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { ModuleError } from '@xyo-network/payload-model'\n\nexport interface ErrorAlertProps extends AlertProps {\n error?: ModuleError | Error\n errorContext?: string\n onCancel?: () => void\n scope?: string\n}\n\nexport const ErrorAlert: React.FC<ErrorAlertProps> = ({ onCancel, error, errorContext, scope, ...props }) => {\n return (\n <Alert severity=\"error\" {...props}>\n <AlertTitle>Whoops! Something went wrong</AlertTitle>\n {errorContext ?\n <Typography variant=\"caption\" my={0.5} lineHeight=\"1\" display=\"block\">\n {errorContext}\n </Typography>\n : null}\n {scope ?\n <>\n <Typography variant=\"caption\" mr={0.5} fontWeight=\"bold\">\n Scope:\n </Typography>\n <Typography variant=\"caption\">{scope}</Typography>\n </>\n : null}\n <Typography variant=\"caption\" mr={0.5} fontWeight=\"bold\">\n Error:\n </Typography>\n <Typography variant=\"caption\">{error?.message}</Typography>\n {onCancel ?\n <ButtonEx variant=\"outlined\" size=\"small\" onClick={onCancel} position=\"absolute\" style={{ right: 8, top: 8 }}>\n <ExitIcon fontSize=\"small\" />\n </ButtonEx>\n : null}\n </Alert>\n )\n}\n","import { FlexCol } from '@xylabs/react-flexbox'\nimport { useEffect } from 'react'\n\nimport { ErrorAlert } from './ErrorAlert.js'\nimport { ErrorRenderProps } from './Props.js'\n\nexport const ErrorRender: React.FC<ErrorRenderProps> = ({\n onCancel,\n error,\n noErrorDisplay = false,\n customError = null,\n children,\n errorContext,\n scope,\n useLocation,\n ...props\n}) => {\n const location = useLocation?.()\n useEffect(() => {\n if (location) {\n // ensure we end up at the same place we are now after logging in\n location.state = {\n from: {\n pathname: window.location.pathname,\n },\n }\n }\n }, [location])\n\n return error ?\n <FlexCol alignItems=\"stretch\" {...props}>\n {noErrorDisplay ?\n customError\n : <FlexCol alignItems=\"center\" {...props}>\n <ErrorAlert error={error} errorContext={errorContext} onCancel={onCancel} scope={scope} />\n </FlexCol>\n }\n </FlexCol>\n : (<>{children}</> ?? null)\n}\n","import { WithChildren } from '@xylabs/react-shared'\nimport { useEffect, useState } from 'react'\nimport Rollbar from 'rollbar'\n\nimport { ErrorReporterContext } from './Context.js'\n\nexport interface ErrorReporterProviderProps {\n rollbar: Rollbar\n}\n\nconst ErrorReporterProvider: React.FC<WithChildren<ErrorReporterProviderProps>> = ({ children, rollbar }) => {\n const [rollbarInstance, setRollBarInstance] = useState<Rollbar>()\n\n useEffect(() => {\n if (rollbarInstance) {\n setRollBarInstance(rollbarInstance)\n }\n }, [rollbar, rollbarInstance])\n\n return <ErrorReporterContext.Provider value={{ rollbar }}>{children}</ErrorReporterContext.Provider>\n}\n\nexport { ErrorReporterProvider }\n","import { createContext } from 'react'\n\nimport { ErrorReporterContextState } from './State.js'\n\nexport const ErrorReporterContext = createContext<ErrorReporterContextState>({})\n","import { useContext } from 'react'\n\nimport { ErrorReporterContext } from './Context.js'\n\nconst useRollbar = () => {\n const context = useContext(ErrorReporterContext)\n if (context === undefined) {\n console.warn('useRollbar must be used within a ErrorReporterContext')\n }\n\n return context ?? {}\n}\n\nexport { useRollbar }\n"],"mappings":"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","names":["import_react","ExitIcon","import_jsx_runtime","import_jsx_runtime","import_react","import_react","import_jsx_runtime","import_react"]}
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/components/ErrorBoundary/ThrownErrorBoundary.tsx","../../src/components/ErrorRender/ErrorAlert.tsx","../../src/components/ErrorRender/Render.tsx","../../src/contexts/ErrorReporter/Provider.tsx","../../src/contexts/ErrorReporter/Context.ts","../../src/contexts/ErrorReporter/useRollbar.tsx"],"sourcesContent":["export * from './components/index.ts'\nexport * from './contexts/index.ts'\n","import { ModuleError, ModuleErrorSchema } from '@xyo-network/payload-model'\nimport React, { Component, ErrorInfo, ReactNode } from 'react'\nimport Rollbar from 'rollbar'\n\nimport { ErrorRender } from '../ErrorRender/index.ts'\n\nexport interface ThrownErrorBoundaryProps {\n boundaryName?: string\n children: ReactNode\n errorComponent?: (e: ModuleError, boundaryName?: string) => ReactNode\n rethrow?: boolean\n rollbar?: Rollbar\n scope?: string\n title?: string\n}\n\nexport interface ThrownErrorBoundaryState {\n xyoError?: ModuleError\n}\n\nexport class ThrownErrorBoundary extends Component<ThrownErrorBoundaryProps, ThrownErrorBoundaryState> {\n override state: ThrownErrorBoundaryState = {\n xyoError: undefined,\n }\n\n static getDerivedStateFromError(error: Error) {\n return { hasError: true, xyoError: ThrownErrorBoundary.normalizeError(error) } as ThrownErrorBoundaryState\n }\n\n static normalizeError(error: Error | ModuleError): ModuleError {\n return (\n (error as ModuleError).schema === ModuleErrorSchema\n ? error\n : { message: error.message, schema: ModuleErrorSchema, sources: [] }) as ModuleError\n }\n\n override componentDidCatch(error: Error, errorInfo: ErrorInfo) {\n const { rethrow, rollbar } = this.props\n const { xyoError } = this.state\n\n rollbar?.error(error)\n\n console.error('Error:', xyoError, errorInfo)\n if (rethrow) {\n throw error\n }\n }\n\n override render() {\n const { xyoError } = this.state\n const { children, boundaryName, errorComponent, scope, title } = this.props\n if (xyoError) {\n if (errorComponent) {\n return errorComponent(xyoError)\n }\n return <ErrorRender error={xyoError} errorContext={`${boundaryName} Boundary`} scope={scope} title={title} />\n }\n\n return children\n }\n}\n","import { ExitToApp as ExitIcon } from '@mui/icons-material'\nimport { Alert, AlertProps, AlertTitle, Typography } from '@mui/material'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { ModuleError } from '@xyo-network/payload-model'\nimport React from 'react'\n\nexport interface ErrorAlertProps extends AlertProps {\n error?: ModuleError | Error | string\n /** @deprecated use scope instead */\n errorContext?: string\n onCancel?: () => void\n scope?: string\n}\n\nexport const ErrorAlert: React.FC<ErrorAlertProps> = ({\n title = 'Whoops! Something went wrong',\n onCancel,\n error = 'An unknown error occurred',\n errorContext,\n scope,\n ...props\n}) => {\n const finalScope = scope ?? errorContext\n return (\n <Alert severity=\"error\" {...props}>\n <AlertTitle>{title}</AlertTitle>\n {finalScope\n ? (\n <div>\n <Typography variant=\"caption\" mr={0.5} fontWeight=\"bold\">\n Scope:\n </Typography>\n <Typography variant=\"caption\">{finalScope}</Typography>\n </div>\n )\n : null}\n <div>\n <Typography variant=\"caption\" mr={0.5} fontWeight=\"bold\">\n Error:\n </Typography>\n <Typography variant=\"caption\">{typeof error === 'string' ? error : error?.message}</Typography>\n </div>\n {onCancel\n ? (\n <ButtonEx variant=\"outlined\" size=\"small\" onClick={onCancel} position=\"absolute\" style={{ right: 8, top: 8 }}>\n <ExitIcon fontSize=\"small\" />\n </ButtonEx>\n )\n : null}\n </Alert>\n )\n}\n","import { FlexCol } from '@xylabs/react-flexbox'\nimport React, { useEffect } from 'react'\n\nimport { ErrorAlert } from './ErrorAlert.tsx'\nimport { ErrorRenderProps } from './Props.ts'\n\nexport const ErrorRender: React.FC<ErrorRenderProps> = ({\n onCancel,\n error,\n noErrorDisplay = false,\n customError = null,\n children,\n errorContext,\n scope,\n useLocation,\n ...props\n}) => {\n const location = useLocation?.()\n useEffect(() => {\n if (location) {\n // ensure we end up at the same place we are now after logging in\n location.state = {\n from: {\n pathname: window.location.pathname,\n },\n }\n }\n }, [location])\n\n return error\n ? (\n <FlexCol alignItems=\"stretch\" {...props}>\n {noErrorDisplay\n ? customError\n : (\n <FlexCol alignItems=\"center\" {...props}>\n <ErrorAlert error={error} errorContext={errorContext} onCancel={onCancel} scope={scope} />\n </FlexCol>\n )}\n </FlexCol>\n )\n : (<>{children}</> ?? null)\n}\n","import { WithChildren } from '@xylabs/react-shared'\nimport React, { useEffect, useState } from 'react'\nimport Rollbar from 'rollbar'\n\nimport { ErrorReporterContext } from './Context.ts'\n\nexport interface ErrorReporterProviderProps {\n rollbar: Rollbar\n}\n\nconst ErrorReporterProvider: React.FC<WithChildren<ErrorReporterProviderProps>> = ({ children, rollbar }) => {\n const [rollbarInstance, setRollBarInstance] = useState<Rollbar>()\n\n useEffect(() => {\n if (rollbarInstance) {\n setRollBarInstance(rollbarInstance)\n }\n }, [rollbar, rollbarInstance])\n\n // eslint-disable-next-line @eslint-react/no-unstable-context-value\n return <ErrorReporterContext.Provider value={{ rollbar }}>{children}</ErrorReporterContext.Provider>\n}\n\nexport { ErrorReporterProvider }\n","import { createContext } from 'react'\n\nimport { ErrorReporterContextState } from './State.ts'\n\nexport const ErrorReporterContext = createContext<ErrorReporterContextState>({})\n","import { useContext } from 'react'\n\nimport { ErrorReporterContext } from './Context.ts'\n\nconst useRollbar = () => {\n const context = useContext(ErrorReporterContext)\n if (context === undefined) {\n console.warn('useRollbar must be used within a ErrorReporterContext')\n }\n\n return context ?? {}\n}\n\nexport { useRollbar }\n"],"mappings":"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","names":["import_react","ErrorAlert","title","onCancel","error","errorContext","scope","props","finalScope","React","Alert","severity","AlertTitle","div","Typography","variant","mr","fontWeight","message","ButtonEx","size","onClick","position","style","right","top","ExitIcon","fontSize","import_react","ErrorRender","onCancel","error","noErrorDisplay","customError","children","errorContext","scope","useLocation","props","location","useEffect","state","from","pathname","window","React","FlexCol","alignItems","ErrorAlert","ThrownErrorBoundary","Component","state","xyoError","undefined","getDerivedStateFromError","error","hasError","normalizeError","schema","ModuleErrorSchema","message","sources","componentDidCatch","errorInfo","rethrow","rollbar","props","console","render","children","boundaryName","errorComponent","scope","title","React","ErrorRender","errorContext","import_react","import_react","ErrorReporterContext","createContext","ErrorReporterProvider","children","rollbar","rollbarInstance","setRollBarInstance","useState","useEffect","React","ErrorReporterContext","Provider","value","import_react","useRollbar","context","useContext","ErrorReporterContext","undefined","console","warn"]}
|
package/dist/node/index.d.cts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './components/index.
|
|
2
|
-
export * from './contexts/index.
|
|
1
|
+
export * from './components/index.ts';
|
|
2
|
+
export * from './contexts/index.ts';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/node/index.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './components/index.
|
|
2
|
-
export * from './contexts/index.
|
|
1
|
+
export * from './components/index.ts';
|
|
2
|
+
export * from './contexts/index.ts';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/node/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './components/index.
|
|
2
|
-
export * from './contexts/index.
|
|
1
|
+
export * from './components/index.ts';
|
|
2
|
+
export * from './contexts/index.ts';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
|
|
4
|
+
// src/components/ErrorBoundary/ThrownErrorBoundary.tsx
|
|
5
|
+
import { ModuleErrorSchema } from "@xyo-network/payload-model";
|
|
6
|
+
import React3, { Component } from "react";
|
|
7
|
+
|
|
8
|
+
// src/components/ErrorRender/ErrorAlert.tsx
|
|
9
|
+
import { ExitToApp as ExitIcon } from "@mui/icons-material";
|
|
10
|
+
import { Alert, AlertTitle, Typography } from "@mui/material";
|
|
11
|
+
import { ButtonEx } from "@xylabs/react-button";
|
|
12
|
+
import React from "react";
|
|
13
|
+
var ErrorAlert = /* @__PURE__ */ __name(({ title = "Whoops! Something went wrong", onCancel, error = "An unknown error occurred", errorContext, scope, ...props }) => {
|
|
14
|
+
const finalScope = scope ?? errorContext;
|
|
15
|
+
return /* @__PURE__ */ React.createElement(Alert, {
|
|
16
|
+
severity: "error",
|
|
17
|
+
...props
|
|
18
|
+
}, /* @__PURE__ */ React.createElement(AlertTitle, null, title), finalScope ? /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement(Typography, {
|
|
19
|
+
variant: "caption",
|
|
20
|
+
mr: 0.5,
|
|
21
|
+
fontWeight: "bold"
|
|
22
|
+
}, "Scope:"), /* @__PURE__ */ React.createElement(Typography, {
|
|
23
|
+
variant: "caption"
|
|
24
|
+
}, finalScope)) : null, /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement(Typography, {
|
|
25
|
+
variant: "caption",
|
|
26
|
+
mr: 0.5,
|
|
27
|
+
fontWeight: "bold"
|
|
28
|
+
}, "Error:"), /* @__PURE__ */ React.createElement(Typography, {
|
|
29
|
+
variant: "caption"
|
|
30
|
+
}, typeof error === "string" ? error : error == null ? void 0 : error.message)), onCancel ? /* @__PURE__ */ React.createElement(ButtonEx, {
|
|
31
|
+
variant: "outlined",
|
|
32
|
+
size: "small",
|
|
33
|
+
onClick: onCancel,
|
|
34
|
+
position: "absolute",
|
|
35
|
+
style: {
|
|
36
|
+
right: 8,
|
|
37
|
+
top: 8
|
|
38
|
+
}
|
|
39
|
+
}, /* @__PURE__ */ React.createElement(ExitIcon, {
|
|
40
|
+
fontSize: "small"
|
|
41
|
+
})) : null);
|
|
42
|
+
}, "ErrorAlert");
|
|
43
|
+
|
|
44
|
+
// src/components/ErrorRender/Render.tsx
|
|
45
|
+
import { FlexCol } from "@xylabs/react-flexbox";
|
|
46
|
+
import React2, { useEffect } from "react";
|
|
47
|
+
var ErrorRender = /* @__PURE__ */ __name(({ onCancel, error, noErrorDisplay = false, customError = null, children, errorContext, scope, useLocation, ...props }) => {
|
|
48
|
+
const location = useLocation == null ? void 0 : useLocation();
|
|
49
|
+
useEffect(() => {
|
|
50
|
+
if (location) {
|
|
51
|
+
location.state = {
|
|
52
|
+
from: {
|
|
53
|
+
pathname: window.location.pathname
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}, [
|
|
58
|
+
location
|
|
59
|
+
]);
|
|
60
|
+
return error ? /* @__PURE__ */ React2.createElement(FlexCol, {
|
|
61
|
+
alignItems: "stretch",
|
|
62
|
+
...props
|
|
63
|
+
}, noErrorDisplay ? customError : /* @__PURE__ */ React2.createElement(FlexCol, {
|
|
64
|
+
alignItems: "center",
|
|
65
|
+
...props
|
|
66
|
+
}, /* @__PURE__ */ React2.createElement(ErrorAlert, {
|
|
67
|
+
error,
|
|
68
|
+
errorContext,
|
|
69
|
+
onCancel,
|
|
70
|
+
scope
|
|
71
|
+
}))) : /* @__PURE__ */ React2.createElement(React2.Fragment, null, children) ?? null;
|
|
72
|
+
}, "ErrorRender");
|
|
73
|
+
|
|
74
|
+
// src/components/ErrorBoundary/ThrownErrorBoundary.tsx
|
|
75
|
+
var _ThrownErrorBoundary = class _ThrownErrorBoundary extends Component {
|
|
76
|
+
state = {
|
|
77
|
+
xyoError: void 0
|
|
78
|
+
};
|
|
79
|
+
static getDerivedStateFromError(error) {
|
|
80
|
+
return {
|
|
81
|
+
hasError: true,
|
|
82
|
+
xyoError: _ThrownErrorBoundary.normalizeError(error)
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
static normalizeError(error) {
|
|
86
|
+
return error.schema === ModuleErrorSchema ? error : {
|
|
87
|
+
message: error.message,
|
|
88
|
+
schema: ModuleErrorSchema,
|
|
89
|
+
sources: []
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
componentDidCatch(error, errorInfo) {
|
|
93
|
+
const { rethrow, rollbar } = this.props;
|
|
94
|
+
const { xyoError } = this.state;
|
|
95
|
+
rollbar == null ? void 0 : rollbar.error(error);
|
|
96
|
+
console.error("Error:", xyoError, errorInfo);
|
|
97
|
+
if (rethrow) {
|
|
98
|
+
throw error;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
render() {
|
|
102
|
+
const { xyoError } = this.state;
|
|
103
|
+
const { children, boundaryName, errorComponent, scope, title } = this.props;
|
|
104
|
+
if (xyoError) {
|
|
105
|
+
if (errorComponent) {
|
|
106
|
+
return errorComponent(xyoError);
|
|
107
|
+
}
|
|
108
|
+
return /* @__PURE__ */ React3.createElement(ErrorRender, {
|
|
109
|
+
error: xyoError,
|
|
110
|
+
errorContext: `${boundaryName} Boundary`,
|
|
111
|
+
scope,
|
|
112
|
+
title
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
return children;
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
__name(_ThrownErrorBoundary, "ThrownErrorBoundary");
|
|
119
|
+
var ThrownErrorBoundary = _ThrownErrorBoundary;
|
|
120
|
+
|
|
121
|
+
// src/contexts/ErrorReporter/Provider.tsx
|
|
122
|
+
import React4, { useEffect as useEffect2, useState } from "react";
|
|
123
|
+
|
|
124
|
+
// src/contexts/ErrorReporter/Context.ts
|
|
125
|
+
import { createContext } from "react";
|
|
126
|
+
var ErrorReporterContext = createContext({});
|
|
127
|
+
|
|
128
|
+
// src/contexts/ErrorReporter/Provider.tsx
|
|
129
|
+
var ErrorReporterProvider = /* @__PURE__ */ __name(({ children, rollbar }) => {
|
|
130
|
+
const [rollbarInstance, setRollBarInstance] = useState();
|
|
131
|
+
useEffect2(() => {
|
|
132
|
+
if (rollbarInstance) {
|
|
133
|
+
setRollBarInstance(rollbarInstance);
|
|
134
|
+
}
|
|
135
|
+
}, [
|
|
136
|
+
rollbar,
|
|
137
|
+
rollbarInstance
|
|
138
|
+
]);
|
|
139
|
+
return /* @__PURE__ */ React4.createElement(ErrorReporterContext.Provider, {
|
|
140
|
+
value: {
|
|
141
|
+
rollbar
|
|
142
|
+
}
|
|
143
|
+
}, children);
|
|
144
|
+
}, "ErrorReporterProvider");
|
|
145
|
+
|
|
146
|
+
// src/contexts/ErrorReporter/useRollbar.tsx
|
|
147
|
+
import { useContext } from "react";
|
|
148
|
+
var useRollbar = /* @__PURE__ */ __name(() => {
|
|
149
|
+
const context = useContext(ErrorReporterContext);
|
|
150
|
+
if (context === void 0) {
|
|
151
|
+
console.warn("useRollbar must be used within a ErrorReporterContext");
|
|
152
|
+
}
|
|
153
|
+
return context ?? {};
|
|
154
|
+
}, "useRollbar");
|
|
155
|
+
export {
|
|
156
|
+
ErrorAlert,
|
|
157
|
+
ErrorRender,
|
|
158
|
+
ErrorReporterProvider,
|
|
159
|
+
ThrownErrorBoundary,
|
|
160
|
+
useRollbar
|
|
161
|
+
};
|
|
162
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/ErrorBoundary/ThrownErrorBoundary.tsx","../../src/components/ErrorRender/ErrorAlert.tsx","../../src/components/ErrorRender/Render.tsx","../../src/contexts/ErrorReporter/Provider.tsx","../../src/contexts/ErrorReporter/Context.ts","../../src/contexts/ErrorReporter/useRollbar.tsx"],"sourcesContent":["import { ModuleError, ModuleErrorSchema } from '@xyo-network/payload-model'\nimport React, { Component, ErrorInfo, ReactNode } from 'react'\nimport Rollbar from 'rollbar'\n\nimport { ErrorRender } from '../ErrorRender/index.ts'\n\nexport interface ThrownErrorBoundaryProps {\n boundaryName?: string\n children: ReactNode\n errorComponent?: (e: ModuleError, boundaryName?: string) => ReactNode\n rethrow?: boolean\n rollbar?: Rollbar\n scope?: string\n title?: string\n}\n\nexport interface ThrownErrorBoundaryState {\n xyoError?: ModuleError\n}\n\nexport class ThrownErrorBoundary extends Component<ThrownErrorBoundaryProps, ThrownErrorBoundaryState> {\n override state: ThrownErrorBoundaryState = {\n xyoError: undefined,\n }\n\n static getDerivedStateFromError(error: Error) {\n return { hasError: true, xyoError: ThrownErrorBoundary.normalizeError(error) } as ThrownErrorBoundaryState\n }\n\n static normalizeError(error: Error | ModuleError): ModuleError {\n return (\n (error as ModuleError).schema === ModuleErrorSchema\n ? error\n : { message: error.message, schema: ModuleErrorSchema, sources: [] }) as ModuleError\n }\n\n override componentDidCatch(error: Error, errorInfo: ErrorInfo) {\n const { rethrow, rollbar } = this.props\n const { xyoError } = this.state\n\n rollbar?.error(error)\n\n console.error('Error:', xyoError, errorInfo)\n if (rethrow) {\n throw error\n }\n }\n\n override render() {\n const { xyoError } = this.state\n const { children, boundaryName, errorComponent, scope, title } = this.props\n if (xyoError) {\n if (errorComponent) {\n return errorComponent(xyoError)\n }\n return <ErrorRender error={xyoError} errorContext={`${boundaryName} Boundary`} scope={scope} title={title} />\n }\n\n return children\n }\n}\n","import { ExitToApp as ExitIcon } from '@mui/icons-material'\nimport { Alert, AlertProps, AlertTitle, Typography } from '@mui/material'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { ModuleError } from '@xyo-network/payload-model'\nimport React from 'react'\n\nexport interface ErrorAlertProps extends AlertProps {\n error?: ModuleError | Error | string\n /** @deprecated use scope instead */\n errorContext?: string\n onCancel?: () => void\n scope?: string\n}\n\nexport const ErrorAlert: React.FC<ErrorAlertProps> = ({\n title = 'Whoops! Something went wrong',\n onCancel,\n error = 'An unknown error occurred',\n errorContext,\n scope,\n ...props\n}) => {\n const finalScope = scope ?? errorContext\n return (\n <Alert severity=\"error\" {...props}>\n <AlertTitle>{title}</AlertTitle>\n {finalScope\n ? (\n <div>\n <Typography variant=\"caption\" mr={0.5} fontWeight=\"bold\">\n Scope:\n </Typography>\n <Typography variant=\"caption\">{finalScope}</Typography>\n </div>\n )\n : null}\n <div>\n <Typography variant=\"caption\" mr={0.5} fontWeight=\"bold\">\n Error:\n </Typography>\n <Typography variant=\"caption\">{typeof error === 'string' ? error : error?.message}</Typography>\n </div>\n {onCancel\n ? (\n <ButtonEx variant=\"outlined\" size=\"small\" onClick={onCancel} position=\"absolute\" style={{ right: 8, top: 8 }}>\n <ExitIcon fontSize=\"small\" />\n </ButtonEx>\n )\n : null}\n </Alert>\n )\n}\n","import { FlexCol } from '@xylabs/react-flexbox'\nimport React, { useEffect } from 'react'\n\nimport { ErrorAlert } from './ErrorAlert.tsx'\nimport { ErrorRenderProps } from './Props.ts'\n\nexport const ErrorRender: React.FC<ErrorRenderProps> = ({\n onCancel,\n error,\n noErrorDisplay = false,\n customError = null,\n children,\n errorContext,\n scope,\n useLocation,\n ...props\n}) => {\n const location = useLocation?.()\n useEffect(() => {\n if (location) {\n // ensure we end up at the same place we are now after logging in\n location.state = {\n from: {\n pathname: window.location.pathname,\n },\n }\n }\n }, [location])\n\n return error\n ? (\n <FlexCol alignItems=\"stretch\" {...props}>\n {noErrorDisplay\n ? customError\n : (\n <FlexCol alignItems=\"center\" {...props}>\n <ErrorAlert error={error} errorContext={errorContext} onCancel={onCancel} scope={scope} />\n </FlexCol>\n )}\n </FlexCol>\n )\n : (<>{children}</> ?? null)\n}\n","import { WithChildren } from '@xylabs/react-shared'\nimport React, { useEffect, useState } from 'react'\nimport Rollbar from 'rollbar'\n\nimport { ErrorReporterContext } from './Context.ts'\n\nexport interface ErrorReporterProviderProps {\n rollbar: Rollbar\n}\n\nconst ErrorReporterProvider: React.FC<WithChildren<ErrorReporterProviderProps>> = ({ children, rollbar }) => {\n const [rollbarInstance, setRollBarInstance] = useState<Rollbar>()\n\n useEffect(() => {\n if (rollbarInstance) {\n setRollBarInstance(rollbarInstance)\n }\n }, [rollbar, rollbarInstance])\n\n // eslint-disable-next-line @eslint-react/no-unstable-context-value\n return <ErrorReporterContext.Provider value={{ rollbar }}>{children}</ErrorReporterContext.Provider>\n}\n\nexport { ErrorReporterProvider }\n","import { createContext } from 'react'\n\nimport { ErrorReporterContextState } from './State.ts'\n\nexport const ErrorReporterContext = createContext<ErrorReporterContextState>({})\n","import { useContext } from 'react'\n\nimport { ErrorReporterContext } from './Context.ts'\n\nconst useRollbar = () => {\n const context = useContext(ErrorReporterContext)\n if (context === undefined) {\n console.warn('useRollbar must be used within a ErrorReporterContext')\n }\n\n return context ?? {}\n}\n\nexport { useRollbar }\n"],"mappings":"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","names":["ModuleErrorSchema","React","Component","ExitToApp","ExitIcon","Alert","AlertTitle","Typography","ButtonEx","React","ErrorAlert","title","onCancel","error","errorContext","scope","props","finalScope","Alert","severity","AlertTitle","div","Typography","variant","mr","fontWeight","message","ButtonEx","size","onClick","position","style","right","top","ExitIcon","fontSize","FlexCol","React","useEffect","ErrorRender","onCancel","error","noErrorDisplay","customError","children","errorContext","scope","useLocation","props","location","useEffect","state","from","pathname","window","React","FlexCol","alignItems","ErrorAlert","ThrownErrorBoundary","Component","state","xyoError","undefined","getDerivedStateFromError","error","hasError","normalizeError","schema","ModuleErrorSchema","message","sources","componentDidCatch","errorInfo","rethrow","rollbar","props","console","render","children","boundaryName","errorComponent","scope","title","React","ErrorRender","errorContext","React","useEffect","useState","createContext","ErrorReporterContext","ErrorReporterProvider","children","rollbar","rollbarInstance","setRollBarInstance","useState","useEffect","React","ErrorReporterContext","Provider","value","useContext","useRollbar","context","useContext","ErrorReporterContext","undefined","console","warn"]}
|
package/package.json
CHANGED
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/issues"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@xylabs/react-button": "^3.4.
|
|
14
|
-
"@xylabs/react-flexbox": "^3.4.
|
|
15
|
-
"@xylabs/react-shared": "^3.4.
|
|
16
|
-
"@xyo-network/payload-model": "^2.
|
|
17
|
-
"react-router-dom": "^6.
|
|
13
|
+
"@xylabs/react-button": "^3.4.2",
|
|
14
|
+
"@xylabs/react-flexbox": "^3.4.2",
|
|
15
|
+
"@xylabs/react-shared": "^3.4.2",
|
|
16
|
+
"@xyo-network/payload-model": "^2.111.3",
|
|
17
|
+
"react-router-dom": "^6.26.0"
|
|
18
18
|
},
|
|
19
19
|
"peerDependencies": {
|
|
20
20
|
"@mui/icons-material": "^5",
|
|
@@ -25,9 +25,9 @@
|
|
|
25
25
|
"rollbar": "^2"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@storybook/react": "^
|
|
29
|
-
"@xylabs/ts-scripts-yarn3": "^3.
|
|
30
|
-
"@xylabs/tsconfig-react": "^3.
|
|
28
|
+
"@storybook/react": "^8.2.7",
|
|
29
|
+
"@xylabs/ts-scripts-yarn3": "^3.15.16",
|
|
30
|
+
"@xylabs/tsconfig-react": "^3.15.16",
|
|
31
31
|
"typescript": "^5.5.4"
|
|
32
32
|
},
|
|
33
33
|
"peerDependenciesMeta": {
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"node": {
|
|
43
43
|
"import": {
|
|
44
44
|
"types": "./dist/node/index.d.mts",
|
|
45
|
-
"default": "./dist/node/index.
|
|
45
|
+
"default": "./dist/node/index.mjs"
|
|
46
46
|
},
|
|
47
47
|
"require": {
|
|
48
48
|
"types": "./dist/node/index.d.cts",
|
|
@@ -52,19 +52,19 @@
|
|
|
52
52
|
"browser": {
|
|
53
53
|
"import": {
|
|
54
54
|
"types": "./dist/browser/index.d.mts",
|
|
55
|
-
"default": "./dist/browser/index.
|
|
55
|
+
"default": "./dist/browser/index.mjs"
|
|
56
56
|
},
|
|
57
57
|
"require": {
|
|
58
58
|
"types": "./dist/browser/index.d.cts",
|
|
59
59
|
"default": "./dist/browser/index.cjs"
|
|
60
60
|
}
|
|
61
61
|
},
|
|
62
|
-
"default": "./dist/browser/index.
|
|
62
|
+
"default": "./dist/browser/index.mjs"
|
|
63
63
|
},
|
|
64
64
|
"./package.json": "./package.json"
|
|
65
65
|
},
|
|
66
66
|
"main": "dist/browser/index.cjs",
|
|
67
|
-
"module": "dist/browser/index.
|
|
67
|
+
"module": "dist/browser/index.mjs",
|
|
68
68
|
"homepage": "https://xyo.network",
|
|
69
69
|
"keywords": [
|
|
70
70
|
"xyo",
|
|
@@ -86,6 +86,6 @@
|
|
|
86
86
|
},
|
|
87
87
|
"sideEffects": false,
|
|
88
88
|
"types": "dist/browser/index.d.ts",
|
|
89
|
-
"version": "2.
|
|
89
|
+
"version": "2.82.0",
|
|
90
90
|
"type": "module"
|
|
91
91
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
/* eslint-disable import/no-internal-modules */
|
|
2
1
|
import { Alert } from '@mui/material'
|
|
3
2
|
import { Meta, StoryFn } from '@storybook/react'
|
|
3
|
+
import React from 'react'
|
|
4
4
|
|
|
5
|
-
import { ThrownErrorBoundary } from './ThrownErrorBoundary.
|
|
5
|
+
import { ThrownErrorBoundary } from './ThrownErrorBoundary.tsx'
|
|
6
6
|
|
|
7
7
|
const StorybookEntry: Meta = {
|
|
8
8
|
component: ThrownErrorBoundary,
|
|
@@ -22,10 +22,14 @@ Default.args = {}
|
|
|
22
22
|
|
|
23
23
|
const CustomErrorComponent = Template.bind({})
|
|
24
24
|
CustomErrorComponent.args = {
|
|
25
|
-
errorComponent:
|
|
25
|
+
errorComponent: e => (
|
|
26
|
+
<Alert severity="error">
|
|
27
|
+
Using Custom Error Component with error:
|
|
28
|
+
{e.message}
|
|
29
|
+
</Alert>
|
|
30
|
+
),
|
|
26
31
|
}
|
|
27
32
|
|
|
28
33
|
export { CustomErrorComponent, Default }
|
|
29
34
|
|
|
30
|
-
// eslint-disable-next-line import/no-default-export
|
|
31
35
|
export default StorybookEntry
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ModuleError, ModuleErrorSchema } from '@xyo-network/payload-model'
|
|
2
|
-
import { Component, ErrorInfo, ReactNode } from 'react'
|
|
2
|
+
import React, { Component, ErrorInfo, ReactNode } from 'react'
|
|
3
3
|
import Rollbar from 'rollbar'
|
|
4
4
|
|
|
5
|
-
import { ErrorRender } from '../ErrorRender/index.
|
|
5
|
+
import { ErrorRender } from '../ErrorRender/index.ts'
|
|
6
6
|
|
|
7
7
|
export interface ThrownErrorBoundaryProps {
|
|
8
8
|
boundaryName?: string
|
|
@@ -11,6 +11,7 @@ export interface ThrownErrorBoundaryProps {
|
|
|
11
11
|
rethrow?: boolean
|
|
12
12
|
rollbar?: Rollbar
|
|
13
13
|
scope?: string
|
|
14
|
+
title?: string
|
|
14
15
|
}
|
|
15
16
|
|
|
16
17
|
export interface ThrownErrorBoundaryState {
|
|
@@ -28,9 +29,9 @@ export class ThrownErrorBoundary extends Component<ThrownErrorBoundaryProps, Thr
|
|
|
28
29
|
|
|
29
30
|
static normalizeError(error: Error | ModuleError): ModuleError {
|
|
30
31
|
return (
|
|
31
|
-
(error as ModuleError).schema === ModuleErrorSchema
|
|
32
|
-
error
|
|
33
|
-
|
|
32
|
+
(error as ModuleError).schema === ModuleErrorSchema
|
|
33
|
+
? error
|
|
34
|
+
: { message: error.message, schema: ModuleErrorSchema, sources: [] }) as ModuleError
|
|
34
35
|
}
|
|
35
36
|
|
|
36
37
|
override componentDidCatch(error: Error, errorInfo: ErrorInfo) {
|
|
@@ -47,12 +48,12 @@ export class ThrownErrorBoundary extends Component<ThrownErrorBoundaryProps, Thr
|
|
|
47
48
|
|
|
48
49
|
override render() {
|
|
49
50
|
const { xyoError } = this.state
|
|
50
|
-
const { children, boundaryName, errorComponent, scope } = this.props
|
|
51
|
+
const { children, boundaryName, errorComponent, scope, title } = this.props
|
|
51
52
|
if (xyoError) {
|
|
52
53
|
if (errorComponent) {
|
|
53
54
|
return errorComponent(xyoError)
|
|
54
55
|
}
|
|
55
|
-
return <ErrorRender error={xyoError} errorContext={`${boundaryName} Boundary`} scope={scope} />
|
|
56
|
+
return <ErrorRender error={xyoError} errorContext={`${boundaryName} Boundary`} scope={scope} title={title} />
|
|
56
57
|
}
|
|
57
58
|
|
|
58
59
|
return children
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './ThrownErrorBoundary.
|
|
1
|
+
export * from './ThrownErrorBoundary.tsx'
|