@xyo-network/react-error 2.64.0-rc.7 → 2.64.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (180) hide show
  1. package/dist/browser/components/ErrorBoundary/ThrownErrorBoundary.cjs +106 -0
  2. package/dist/browser/components/ErrorBoundary/ThrownErrorBoundary.cjs.map +1 -0
  3. package/dist/browser/components/ErrorBoundary/ThrownErrorBoundary.d.cts +21 -0
  4. package/dist/browser/components/ErrorBoundary/ThrownErrorBoundary.d.cts.map +1 -0
  5. package/dist/browser/components/ErrorBoundary/index.cjs +108 -0
  6. package/dist/browser/components/ErrorBoundary/index.cjs.map +1 -0
  7. package/dist/browser/components/ErrorBoundary/index.d.cts +2 -0
  8. package/dist/browser/components/ErrorBoundary/index.d.cts.map +1 -0
  9. package/dist/browser/components/ErrorRender/ErrorAlert.cjs +39 -0
  10. package/dist/{node/components/ErrorRender/ErrorAlert.mjs.map → browser/components/ErrorRender/ErrorAlert.cjs.map} +1 -1
  11. package/dist/browser/components/ErrorRender/ErrorAlert.d.cts +10 -0
  12. package/dist/browser/components/ErrorRender/ErrorAlert.d.cts.map +1 -0
  13. package/dist/browser/components/ErrorRender/Props.cjs +19 -0
  14. package/dist/browser/components/ErrorRender/Props.cjs.map +1 -0
  15. package/dist/browser/components/ErrorRender/Props.d.cts +12 -0
  16. package/dist/browser/components/ErrorRender/Props.d.cts.map +1 -0
  17. package/dist/browser/components/ErrorRender/Render.cjs +70 -0
  18. package/dist/browser/components/ErrorRender/Render.cjs.map +1 -0
  19. package/dist/browser/components/ErrorRender/Render.d.cts +4 -0
  20. package/dist/browser/components/ErrorRender/Render.d.cts.map +1 -0
  21. package/dist/browser/components/ErrorRender/index.cjs +71 -0
  22. package/dist/browser/components/ErrorRender/index.cjs.map +1 -0
  23. package/dist/browser/components/ErrorRender/index.d.cts +4 -0
  24. package/dist/browser/components/ErrorRender/index.d.cts.map +1 -0
  25. package/dist/browser/components/index.cjs +110 -0
  26. package/dist/browser/components/index.cjs.map +1 -0
  27. package/dist/browser/components/index.d.cts +3 -0
  28. package/dist/browser/components/index.d.cts.map +1 -0
  29. package/dist/browser/contexts/ErrorReporter/Context.cjs +28 -0
  30. package/dist/{node/contexts/ErrorReporter/Context.mjs.map → browser/contexts/ErrorReporter/Context.cjs.map} +1 -1
  31. package/dist/browser/contexts/ErrorReporter/Context.d.cts +4 -0
  32. package/dist/browser/contexts/ErrorReporter/Context.d.cts.map +1 -0
  33. package/dist/browser/contexts/ErrorReporter/Provider.cjs +43 -0
  34. package/dist/browser/contexts/ErrorReporter/Provider.cjs.map +1 -0
  35. package/dist/browser/contexts/ErrorReporter/Provider.d.cts +9 -0
  36. package/dist/browser/contexts/ErrorReporter/Provider.d.cts.map +1 -0
  37. package/dist/browser/contexts/ErrorReporter/State.cjs +19 -0
  38. package/dist/browser/contexts/ErrorReporter/State.cjs.map +1 -0
  39. package/dist/browser/contexts/ErrorReporter/State.d.cts +5 -0
  40. package/dist/browser/contexts/ErrorReporter/State.d.cts.map +1 -0
  41. package/dist/browser/contexts/ErrorReporter/index.cjs +56 -0
  42. package/dist/browser/contexts/ErrorReporter/index.cjs.map +1 -0
  43. package/dist/browser/contexts/ErrorReporter/index.d.cts +4 -0
  44. package/dist/browser/contexts/ErrorReporter/index.d.cts.map +1 -0
  45. package/dist/browser/contexts/ErrorReporter/useRollbar.cjs +40 -0
  46. package/dist/browser/contexts/ErrorReporter/useRollbar.cjs.map +1 -0
  47. package/dist/browser/contexts/ErrorReporter/useRollbar.d.cts +3 -0
  48. package/dist/browser/contexts/ErrorReporter/useRollbar.d.cts.map +1 -0
  49. package/dist/browser/contexts/index.cjs +56 -0
  50. package/dist/browser/contexts/index.cjs.map +1 -0
  51. package/dist/browser/contexts/index.d.cts +2 -0
  52. package/dist/browser/contexts/index.d.cts.map +1 -0
  53. package/dist/browser/index.cjs +141 -0
  54. package/dist/browser/index.cjs.map +1 -0
  55. package/dist/browser/index.d.cts +3 -0
  56. package/dist/browser/index.d.cts.map +1 -0
  57. package/dist/docs.json +25215 -0
  58. package/dist/node/components/ErrorBoundary/ThrownErrorBoundary.cjs +110 -0
  59. package/dist/node/components/ErrorBoundary/ThrownErrorBoundary.cjs.map +1 -0
  60. package/dist/node/components/ErrorBoundary/ThrownErrorBoundary.d.cts +21 -0
  61. package/dist/node/components/ErrorBoundary/ThrownErrorBoundary.d.cts.map +1 -0
  62. package/dist/node/components/ErrorBoundary/ThrownErrorBoundary.js +55 -33
  63. package/dist/node/components/ErrorBoundary/ThrownErrorBoundary.js.map +1 -1
  64. package/dist/node/components/ErrorBoundary/index.cjs +112 -0
  65. package/dist/node/components/ErrorBoundary/index.cjs.map +1 -0
  66. package/dist/node/components/ErrorBoundary/index.d.cts +2 -0
  67. package/dist/node/components/ErrorBoundary/index.d.cts.map +1 -0
  68. package/dist/node/components/ErrorBoundary/index.js +82 -20
  69. package/dist/node/components/ErrorBoundary/index.js.map +1 -1
  70. package/dist/node/components/ErrorRender/ErrorAlert.cjs +43 -0
  71. package/dist/node/components/ErrorRender/ErrorAlert.cjs.map +1 -0
  72. package/dist/node/components/ErrorRender/ErrorAlert.d.cts +10 -0
  73. package/dist/node/components/ErrorRender/ErrorAlert.d.cts.map +1 -0
  74. package/dist/node/components/ErrorRender/ErrorAlert.js +14 -37
  75. package/dist/node/components/ErrorRender/ErrorAlert.js.map +1 -1
  76. package/dist/node/components/ErrorRender/Props.cjs +19 -0
  77. package/dist/node/components/ErrorRender/Props.cjs.map +1 -0
  78. package/dist/node/components/ErrorRender/Props.d.cts +12 -0
  79. package/dist/node/components/ErrorRender/Props.d.cts.map +1 -0
  80. package/dist/node/components/ErrorRender/Props.js +0 -16
  81. package/dist/node/components/ErrorRender/Props.js.map +1 -1
  82. package/dist/node/components/ErrorRender/Render.cjs +74 -0
  83. package/dist/node/components/ErrorRender/Render.cjs.map +1 -0
  84. package/dist/node/components/ErrorRender/Render.d.cts +4 -0
  85. package/dist/node/components/ErrorRender/Render.d.cts.map +1 -0
  86. package/dist/node/components/ErrorRender/Render.js +28 -35
  87. package/dist/node/components/ErrorRender/Render.js.map +1 -1
  88. package/dist/node/components/ErrorRender/index.cjs +76 -0
  89. package/dist/node/components/ErrorRender/index.cjs.map +1 -0
  90. package/dist/node/components/ErrorRender/index.d.cts +4 -0
  91. package/dist/node/components/ErrorRender/index.d.cts.map +1 -0
  92. package/dist/node/components/ErrorRender/index.js +45 -24
  93. package/dist/node/components/ErrorRender/index.js.map +1 -1
  94. package/dist/node/components/index.cjs +116 -0
  95. package/dist/node/components/index.cjs.map +1 -0
  96. package/dist/node/components/index.d.cts +3 -0
  97. package/dist/node/components/index.d.cts.map +1 -0
  98. package/dist/node/components/index.js +84 -22
  99. package/dist/node/components/index.js.map +1 -1
  100. package/dist/node/contexts/ErrorReporter/Context.cjs +32 -0
  101. package/dist/node/contexts/ErrorReporter/Context.cjs.map +1 -0
  102. package/dist/node/contexts/ErrorReporter/Context.d.cts +4 -0
  103. package/dist/node/contexts/ErrorReporter/Context.d.cts.map +1 -0
  104. package/dist/node/contexts/ErrorReporter/Context.js +5 -28
  105. package/dist/node/contexts/ErrorReporter/Context.js.map +1 -1
  106. package/dist/node/contexts/ErrorReporter/Provider.cjs +47 -0
  107. package/dist/node/contexts/ErrorReporter/Provider.cjs.map +1 -0
  108. package/dist/node/contexts/ErrorReporter/Provider.d.cts +9 -0
  109. package/dist/node/contexts/ErrorReporter/Provider.d.cts.map +1 -0
  110. package/dist/node/contexts/ErrorReporter/Provider.js +15 -33
  111. package/dist/node/contexts/ErrorReporter/Provider.js.map +1 -1
  112. package/dist/node/contexts/ErrorReporter/State.cjs +19 -0
  113. package/dist/node/contexts/ErrorReporter/State.cjs.map +1 -0
  114. package/dist/node/contexts/ErrorReporter/State.d.cts +5 -0
  115. package/dist/node/contexts/ErrorReporter/State.d.cts.map +1 -0
  116. package/dist/node/contexts/ErrorReporter/State.js +0 -16
  117. package/dist/node/contexts/ErrorReporter/State.js.map +1 -1
  118. package/dist/node/contexts/ErrorReporter/index.cjs +61 -0
  119. package/dist/node/contexts/ErrorReporter/index.cjs.map +1 -0
  120. package/dist/node/contexts/ErrorReporter/index.d.cts +4 -0
  121. package/dist/node/contexts/ErrorReporter/index.d.cts.map +1 -0
  122. package/dist/node/contexts/ErrorReporter/index.js +30 -24
  123. package/dist/node/contexts/ErrorReporter/index.js.map +1 -1
  124. package/dist/node/contexts/ErrorReporter/useRollbar.cjs +44 -0
  125. package/dist/node/contexts/ErrorReporter/useRollbar.cjs.map +1 -0
  126. package/dist/node/contexts/ErrorReporter/useRollbar.d.cts +3 -0
  127. package/dist/node/contexts/ErrorReporter/useRollbar.d.cts.map +1 -0
  128. package/dist/node/contexts/ErrorReporter/useRollbar.js +12 -30
  129. package/dist/node/contexts/ErrorReporter/useRollbar.js.map +1 -1
  130. package/dist/node/contexts/index.cjs +61 -0
  131. package/dist/node/contexts/index.cjs.map +1 -0
  132. package/dist/node/contexts/index.d.cts +2 -0
  133. package/dist/node/contexts/index.d.cts.map +1 -0
  134. package/dist/node/contexts/index.js +30 -20
  135. package/dist/node/contexts/index.js.map +1 -1
  136. package/dist/node/index.cjs +149 -0
  137. package/dist/node/index.cjs.map +1 -0
  138. package/dist/node/index.d.cts +3 -0
  139. package/dist/node/index.d.cts.map +1 -0
  140. package/dist/node/index.js +115 -22
  141. package/dist/node/index.js.map +1 -1
  142. package/package.json +17 -17
  143. package/dist/browser/components/ErrorBoundary/ThrownErrorBoundary.stories.js +0 -26
  144. package/dist/browser/components/ErrorBoundary/ThrownErrorBoundary.stories.js.map +0 -1
  145. package/dist/browser/contexts/ErrorReporter/Provider.stories.js +0 -35
  146. package/dist/browser/contexts/ErrorReporter/Provider.stories.js.map +0 -1
  147. package/dist/node/components/ErrorBoundary/ThrownErrorBoundary.mjs +0 -39
  148. package/dist/node/components/ErrorBoundary/ThrownErrorBoundary.mjs.map +0 -1
  149. package/dist/node/components/ErrorBoundary/ThrownErrorBoundary.stories.js +0 -51
  150. package/dist/node/components/ErrorBoundary/ThrownErrorBoundary.stories.js.map +0 -1
  151. package/dist/node/components/ErrorBoundary/ThrownErrorBoundary.stories.mjs +0 -26
  152. package/dist/node/components/ErrorBoundary/ThrownErrorBoundary.stories.mjs.map +0 -1
  153. package/dist/node/components/ErrorBoundary/index.mjs +0 -2
  154. package/dist/node/components/ErrorBoundary/index.mjs.map +0 -1
  155. package/dist/node/components/ErrorRender/ErrorAlert.mjs +0 -17
  156. package/dist/node/components/ErrorRender/Props.mjs +0 -1
  157. package/dist/node/components/ErrorRender/Props.mjs.map +0 -1
  158. package/dist/node/components/ErrorRender/Render.mjs +0 -32
  159. package/dist/node/components/ErrorRender/Render.mjs.map +0 -1
  160. package/dist/node/components/ErrorRender/index.mjs +0 -4
  161. package/dist/node/components/ErrorRender/index.mjs.map +0 -1
  162. package/dist/node/components/index.mjs +0 -3
  163. package/dist/node/components/index.mjs.map +0 -1
  164. package/dist/node/contexts/ErrorReporter/Context.mjs +0 -6
  165. package/dist/node/contexts/ErrorReporter/Provider.mjs +0 -16
  166. package/dist/node/contexts/ErrorReporter/Provider.mjs.map +0 -1
  167. package/dist/node/contexts/ErrorReporter/Provider.stories.js +0 -69
  168. package/dist/node/contexts/ErrorReporter/Provider.stories.js.map +0 -1
  169. package/dist/node/contexts/ErrorReporter/Provider.stories.mjs +0 -35
  170. package/dist/node/contexts/ErrorReporter/Provider.stories.mjs.map +0 -1
  171. package/dist/node/contexts/ErrorReporter/State.mjs +0 -1
  172. package/dist/node/contexts/ErrorReporter/State.mjs.map +0 -1
  173. package/dist/node/contexts/ErrorReporter/index.mjs +0 -4
  174. package/dist/node/contexts/ErrorReporter/index.mjs.map +0 -1
  175. package/dist/node/contexts/ErrorReporter/useRollbar.mjs +0 -13
  176. package/dist/node/contexts/ErrorReporter/useRollbar.mjs.map +0 -1
  177. package/dist/node/contexts/index.mjs +0 -2
  178. package/dist/node/contexts/index.mjs.map +0 -1
  179. package/dist/node/index.mjs +0 -3
  180. package/dist/node/index.mjs.map +0 -1
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/components/ErrorBoundary/ThrownErrorBoundary.tsx
21
+ var ThrownErrorBoundary_exports = {};
22
+ __export(ThrownErrorBoundary_exports, {
23
+ ThrownErrorBoundary: () => ThrownErrorBoundary
24
+ });
25
+ module.exports = __toCommonJS(ThrownErrorBoundary_exports);
26
+ var import_payload_model = require("@xyo-network/payload-model");
27
+ var import_react2 = require("react");
28
+
29
+ // src/components/ErrorRender/ErrorAlert.tsx
30
+ var import_icons_material = require("@mui/icons-material");
31
+ var import_material = require("@mui/material");
32
+ var import_react_button = require("@xylabs/react-button");
33
+ var import_jsx_runtime = require("react/jsx-runtime");
34
+ var ErrorAlert = ({ onCancel, error, errorContext, ...props }) => {
35
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_material.Alert, { severity: "error", ...props, children: [
36
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.AlertTitle, { children: "Whoops! Something went wrong" }),
37
+ errorContext ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, { variant: "caption", my: 0.5, lineHeight: "1", display: "block", children: errorContext }) : null,
38
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, { variant: "caption", mr: 0.5, fontWeight: "bold", children: "Error:" }),
39
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, { variant: "caption", children: error?.message }),
40
+ onCancel ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_button.ButtonEx, { variant: "outlined", size: "small", onClick: onCancel, position: "absolute", style: { right: 8, top: 8 }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons_material.ExitToApp, { fontSize: "small" }) }) : null
41
+ ] });
42
+ };
43
+
44
+ // src/components/ErrorRender/Render.tsx
45
+ var import_react_flexbox = require("@xylabs/react-flexbox");
46
+ var import_react = require("react");
47
+ var import_react_router_dom = require("react-router-dom");
48
+ var import_jsx_runtime2 = require("react/jsx-runtime");
49
+ var ErrorRender = ({
50
+ onCancel,
51
+ error,
52
+ noErrorDisplay = false,
53
+ customError = null,
54
+ children,
55
+ errorContext,
56
+ ...props
57
+ }) => {
58
+ const location = (0, import_react_router_dom.useLocation)();
59
+ (0, import_react.useEffect)(() => {
60
+ location.state = {
61
+ from: {
62
+ pathname: window.location.pathname
63
+ }
64
+ };
65
+ }, [location]);
66
+ if (error) {
67
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_flexbox.FlexCol, { alignItems: "stretch", ...props, children: noErrorDisplay ? customError : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_flexbox.FlexCol, { alignItems: "center", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ErrorAlert, { error, errorContext, onCancel }) }) });
68
+ } else {
69
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_jsx_runtime2.Fragment, { children }) ?? null;
70
+ }
71
+ };
72
+
73
+ // src/components/ErrorBoundary/ThrownErrorBoundary.tsx
74
+ var import_jsx_runtime3 = require("react/jsx-runtime");
75
+ var ThrownErrorBoundary = class _ThrownErrorBoundary extends import_react2.Component {
76
+ state = {
77
+ xyoError: void 0
78
+ };
79
+ static getDerivedStateFromError(error) {
80
+ return { hasError: true, xyoError: _ThrownErrorBoundary.normalizeError(error) };
81
+ }
82
+ static normalizeError(error) {
83
+ return error.schema === import_payload_model.ModuleErrorSchema ? error : { message: error.message, schema: import_payload_model.ModuleErrorSchema, sources: [] };
84
+ }
85
+ componentDidCatch(error, errorInfo) {
86
+ const { rethrow, rollbar } = this.props;
87
+ const { xyoError } = this.state;
88
+ rollbar?.error(error);
89
+ console.error("Error:", xyoError, errorInfo);
90
+ if (rethrow) {
91
+ throw error;
92
+ }
93
+ }
94
+ render() {
95
+ const { xyoError } = this.state;
96
+ const { children, boundaryName, errorComponent } = this.props;
97
+ if (xyoError) {
98
+ if (errorComponent) {
99
+ return errorComponent(xyoError);
100
+ }
101
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ErrorRender, { error: xyoError, errorContext: `${boundaryName} Boundary` });
102
+ }
103
+ return children;
104
+ }
105
+ };
106
+ //# sourceMappingURL=ThrownErrorBoundary.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/ErrorBoundary/ThrownErrorBoundary.tsx","../../../../src/components/ErrorRender/ErrorAlert.tsx","../../../../src/components/ErrorRender/Render.tsx"],"sourcesContent":["import { ModuleError, ModuleErrorSchema } from '@xyo-network/payload-model'\nimport { Component, ErrorInfo, ReactNode } from 'react'\nimport Rollbar from 'rollbar'\n\nimport { ErrorRender } from '../ErrorRender'\n\nexport interface ThrownErrorBoundaryProps {\n boundaryName?: string\n children: ReactNode\n errorComponent?: (e: ModuleError, boundaryName?: string) => ReactNode\n rethrow?: boolean\n rollbar?: Rollbar\n}\n\nexport interface ThrownErrorBoundaryState {\n xyoError?: ModuleError\n}\n\nexport class ThrownErrorBoundary extends Component<ThrownErrorBoundaryProps, ThrownErrorBoundaryState> {\n public 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 public static normalizeError(error: Error | ModuleError): ModuleError {\n return (\n (error as ModuleError).schema === ModuleErrorSchema ? error : { message: error.message, schema: ModuleErrorSchema, sources: [] }\n ) as ModuleError\n }\n\n public 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 public override render() {\n const { xyoError } = this.state\n const { children, boundaryName, errorComponent } = this.props\n if (xyoError) {\n if (errorComponent) {\n return errorComponent(xyoError)\n }\n return <ErrorRender error={xyoError} errorContext={`${boundaryName} Boundary`} />\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}\n\nexport const ErrorAlert: React.FC<ErrorAlertProps> = ({ onCancel, error, errorContext, ...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 <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'\nimport { useLocation } from 'react-router-dom'\n\nimport { ErrorAlert } from './ErrorAlert'\nimport { ErrorRenderProps } from './Props'\n\nexport const ErrorRender: React.FC<ErrorRenderProps> = ({\n onCancel,\n error,\n noErrorDisplay = false,\n customError = null,\n children,\n errorContext,\n ...props\n}) => {\n const location = useLocation()\n useEffect(() => {\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 }, [location])\n\n if (error) {\n return (\n <FlexCol alignItems=\"stretch\" {...props}>\n {noErrorDisplay ? (\n customError\n ) : (\n <FlexCol alignItems=\"center\" {...props}>\n <ErrorAlert error={error} errorContext={errorContext} onCancel={onCancel} />\n </FlexCol>\n )}\n </FlexCol>\n )\n } else {\n return <>{children}</> ?? null\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAA+C;AAC/C,IAAAA,gBAAgD;;;ACDhD,4BAAsC;AACtC,sBAA0D;AAC1D,0BAAyB;AAWrB;AAFG,IAAM,aAAwC,CAAC,EAAE,UAAU,OAAO,cAAc,GAAG,MAAM,MAAM;AACpG,SACE,6CAAC,yBAAM,UAAS,SAAS,GAAG,OAC1B;AAAA,gDAAC,8BAAW,0CAA4B;AAAA,IACvC,eACC,4CAAC,8BAAW,SAAQ,WAAU,IAAI,KAAK,YAAW,KAAI,SAAQ,SAC3D,wBACH,IACE;AAAA,IACJ,4CAAC,8BAAW,SAAQ,WAAU,IAAI,KAAK,YAAW,QAAO,oBAEzD;AAAA,IACA,4CAAC,8BAAW,SAAQ,WAAW,iBAAO,SAAQ;AAAA,IAC7C,WACC,4CAAC,gCAAS,SAAQ,YAAW,MAAK,SAAQ,SAAS,UAAU,UAAS,YAAW,OAAO,EAAE,OAAO,GAAG,KAAK,EAAE,GACzG,sDAAC,sBAAAC,WAAA,EAAS,UAAS,SAAQ,GAC7B,IACE;AAAA,KACN;AAEJ;;;AC/BA,2BAAwB;AACxB,mBAA0B;AAC1B,8BAA4B;AA+BhB,IAAAC,sBAAA;AA1BL,IAAM,cAA0C,CAAC;AAAA,EACtD;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,eAAW,qCAAY;AAC7B,8BAAU,MAAM;AAEd,aAAS,QAAQ;AAAA,MACf,MAAM;AAAA,QACJ,UAAU,OAAO,SAAS;AAAA,MAC5B;AAAA,IACF;AAAA,EACF,GAAG,CAAC,QAAQ,CAAC;AAEb,MAAI,OAAO;AACT,WACE,6CAAC,gCAAQ,YAAW,WAAW,GAAG,OAC/B,2BACC,cAEA,6CAAC,gCAAQ,YAAW,UAAU,GAAG,OAC/B,uDAAC,cAAW,OAAc,cAA4B,UAAoB,GAC5E,GAEJ;AAAA,EAEJ,OAAO;AACL,WAAO,6EAAG,UAAS,KAAO;AAAA,EAC5B;AACF;;;AFWa,IAAAC,sBAAA;AAlCN,IAAM,sBAAN,MAAM,6BAA4B,wBAA8D;AAAA,EACrF,QAAkC;AAAA,IAChD,UAAU;AAAA,EACZ;AAAA,EAEA,OAAO,yBAAyB,OAAc;AAC5C,WAAO,EAAE,UAAU,MAAM,UAAU,qBAAoB,eAAe,KAAK,EAAE;AAAA,EAC/E;AAAA,EAEA,OAAc,eAAe,OAAyC;AACpE,WACG,MAAsB,WAAW,yCAAoB,QAAQ,EAAE,SAAS,MAAM,SAAS,QAAQ,wCAAmB,SAAS,CAAC,EAAE;AAAA,EAEnI;AAAA,EAEgB,kBAAkB,OAAc,WAAsB;AACpE,UAAM,EAAE,SAAS,QAAQ,IAAI,KAAK;AAClC,UAAM,EAAE,SAAS,IAAI,KAAK;AAE1B,aAAS,MAAM,KAAK;AAEpB,YAAQ,MAAM,UAAU,UAAU,SAAS;AAC3C,QAAI,SAAS;AACX,YAAM;AAAA,IACR;AAAA,EACF;AAAA,EAEgB,SAAS;AACvB,UAAM,EAAE,SAAS,IAAI,KAAK;AAC1B,UAAM,EAAE,UAAU,cAAc,eAAe,IAAI,KAAK;AACxD,QAAI,UAAU;AACZ,UAAI,gBAAgB;AAClB,eAAO,eAAe,QAAQ;AAAA,MAChC;AACA,aAAO,6CAAC,eAAY,OAAO,UAAU,cAAc,GAAG,YAAY,aAAa;AAAA,IACjF;AAEA,WAAO;AAAA,EACT;AACF;","names":["import_react","ExitIcon","import_jsx_runtime","import_jsx_runtime"]}
@@ -0,0 +1,21 @@
1
+ import { ModuleError } from '@xyo-network/payload-model';
2
+ import { Component, ErrorInfo, ReactNode } from 'react';
3
+ import Rollbar from 'rollbar';
4
+ export interface ThrownErrorBoundaryProps {
5
+ boundaryName?: string;
6
+ children: ReactNode;
7
+ errorComponent?: (e: ModuleError, boundaryName?: string) => ReactNode;
8
+ rethrow?: boolean;
9
+ rollbar?: Rollbar;
10
+ }
11
+ export interface ThrownErrorBoundaryState {
12
+ xyoError?: ModuleError;
13
+ }
14
+ export declare class ThrownErrorBoundary extends Component<ThrownErrorBoundaryProps, ThrownErrorBoundaryState> {
15
+ state: ThrownErrorBoundaryState;
16
+ static getDerivedStateFromError(error: Error): ThrownErrorBoundaryState;
17
+ static normalizeError(error: Error | ModuleError): ModuleError;
18
+ componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
19
+ render(): string | number | boolean | import("react/jsx-runtime").JSX.Element | Iterable<ReactNode> | null | undefined;
20
+ }
21
+ //# sourceMappingURL=ThrownErrorBoundary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThrownErrorBoundary.d.ts","sourceRoot":"","sources":["../../../../src/components/ErrorBoundary/ThrownErrorBoundary.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAqB,MAAM,4BAA4B,CAAA;AAC3E,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACvD,OAAO,OAAO,MAAM,SAAS,CAAA;AAI7B,MAAM,WAAW,wBAAwB;IACvC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,SAAS,CAAA;IACnB,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,SAAS,CAAA;IACrE,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,WAAW,CAAA;CACvB;AAED,qBAAa,mBAAoB,SAAQ,SAAS,CAAC,wBAAwB,EAAE,wBAAwB,CAAC;IACpF,KAAK,EAAE,wBAAwB,CAE9C;IAED,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK;WAI9B,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,WAAW,GAAG,WAAW;IAMrD,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS;IAYpD,MAAM;CAYvB"}
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/components/ErrorBoundary/index.ts
21
+ var ErrorBoundary_exports = {};
22
+ __export(ErrorBoundary_exports, {
23
+ ThrownErrorBoundary: () => ThrownErrorBoundary
24
+ });
25
+ module.exports = __toCommonJS(ErrorBoundary_exports);
26
+
27
+ // src/components/ErrorBoundary/ThrownErrorBoundary.tsx
28
+ var import_payload_model = require("@xyo-network/payload-model");
29
+ var import_react2 = require("react");
30
+
31
+ // src/components/ErrorRender/ErrorAlert.tsx
32
+ var import_icons_material = require("@mui/icons-material");
33
+ var import_material = require("@mui/material");
34
+ var import_react_button = require("@xylabs/react-button");
35
+ var import_jsx_runtime = require("react/jsx-runtime");
36
+ var ErrorAlert = ({ onCancel, error, errorContext, ...props }) => {
37
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_material.Alert, { severity: "error", ...props, children: [
38
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.AlertTitle, { children: "Whoops! Something went wrong" }),
39
+ errorContext ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, { variant: "caption", my: 0.5, lineHeight: "1", display: "block", children: errorContext }) : null,
40
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, { variant: "caption", mr: 0.5, fontWeight: "bold", children: "Error:" }),
41
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, { variant: "caption", children: error?.message }),
42
+ onCancel ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_button.ButtonEx, { variant: "outlined", size: "small", onClick: onCancel, position: "absolute", style: { right: 8, top: 8 }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons_material.ExitToApp, { fontSize: "small" }) }) : null
43
+ ] });
44
+ };
45
+
46
+ // src/components/ErrorRender/Render.tsx
47
+ var import_react_flexbox = require("@xylabs/react-flexbox");
48
+ var import_react = require("react");
49
+ var import_react_router_dom = require("react-router-dom");
50
+ var import_jsx_runtime2 = require("react/jsx-runtime");
51
+ var ErrorRender = ({
52
+ onCancel,
53
+ error,
54
+ noErrorDisplay = false,
55
+ customError = null,
56
+ children,
57
+ errorContext,
58
+ ...props
59
+ }) => {
60
+ const location = (0, import_react_router_dom.useLocation)();
61
+ (0, import_react.useEffect)(() => {
62
+ location.state = {
63
+ from: {
64
+ pathname: window.location.pathname
65
+ }
66
+ };
67
+ }, [location]);
68
+ if (error) {
69
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_flexbox.FlexCol, { alignItems: "stretch", ...props, children: noErrorDisplay ? customError : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_flexbox.FlexCol, { alignItems: "center", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ErrorAlert, { error, errorContext, onCancel }) }) });
70
+ } else {
71
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_jsx_runtime2.Fragment, { children }) ?? null;
72
+ }
73
+ };
74
+
75
+ // src/components/ErrorBoundary/ThrownErrorBoundary.tsx
76
+ var import_jsx_runtime3 = require("react/jsx-runtime");
77
+ var ThrownErrorBoundary = class _ThrownErrorBoundary extends import_react2.Component {
78
+ state = {
79
+ xyoError: void 0
80
+ };
81
+ static getDerivedStateFromError(error) {
82
+ return { hasError: true, xyoError: _ThrownErrorBoundary.normalizeError(error) };
83
+ }
84
+ static normalizeError(error) {
85
+ return error.schema === import_payload_model.ModuleErrorSchema ? error : { message: error.message, schema: import_payload_model.ModuleErrorSchema, sources: [] };
86
+ }
87
+ componentDidCatch(error, errorInfo) {
88
+ const { rethrow, rollbar } = this.props;
89
+ const { xyoError } = this.state;
90
+ rollbar?.error(error);
91
+ console.error("Error:", xyoError, errorInfo);
92
+ if (rethrow) {
93
+ throw error;
94
+ }
95
+ }
96
+ render() {
97
+ const { xyoError } = this.state;
98
+ const { children, boundaryName, errorComponent } = this.props;
99
+ if (xyoError) {
100
+ if (errorComponent) {
101
+ return errorComponent(xyoError);
102
+ }
103
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ErrorRender, { error: xyoError, errorContext: `${boundaryName} Boundary` });
104
+ }
105
+ return children;
106
+ }
107
+ };
108
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/ErrorBoundary/index.ts","../../../../src/components/ErrorBoundary/ThrownErrorBoundary.tsx","../../../../src/components/ErrorRender/ErrorAlert.tsx","../../../../src/components/ErrorRender/Render.tsx"],"sourcesContent":["export * from './ThrownErrorBoundary'\n","import { ModuleError, ModuleErrorSchema } from '@xyo-network/payload-model'\nimport { Component, ErrorInfo, ReactNode } from 'react'\nimport Rollbar from 'rollbar'\n\nimport { ErrorRender } from '../ErrorRender'\n\nexport interface ThrownErrorBoundaryProps {\n boundaryName?: string\n children: ReactNode\n errorComponent?: (e: ModuleError, boundaryName?: string) => ReactNode\n rethrow?: boolean\n rollbar?: Rollbar\n}\n\nexport interface ThrownErrorBoundaryState {\n xyoError?: ModuleError\n}\n\nexport class ThrownErrorBoundary extends Component<ThrownErrorBoundaryProps, ThrownErrorBoundaryState> {\n public 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 public static normalizeError(error: Error | ModuleError): ModuleError {\n return (\n (error as ModuleError).schema === ModuleErrorSchema ? error : { message: error.message, schema: ModuleErrorSchema, sources: [] }\n ) as ModuleError\n }\n\n public 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 public override render() {\n const { xyoError } = this.state\n const { children, boundaryName, errorComponent } = this.props\n if (xyoError) {\n if (errorComponent) {\n return errorComponent(xyoError)\n }\n return <ErrorRender error={xyoError} errorContext={`${boundaryName} Boundary`} />\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}\n\nexport const ErrorAlert: React.FC<ErrorAlertProps> = ({ onCancel, error, errorContext, ...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 <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'\nimport { useLocation } from 'react-router-dom'\n\nimport { ErrorAlert } from './ErrorAlert'\nimport { ErrorRenderProps } from './Props'\n\nexport const ErrorRender: React.FC<ErrorRenderProps> = ({\n onCancel,\n error,\n noErrorDisplay = false,\n customError = null,\n children,\n errorContext,\n ...props\n}) => {\n const location = useLocation()\n useEffect(() => {\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 }, [location])\n\n if (error) {\n return (\n <FlexCol alignItems=\"stretch\" {...props}>\n {noErrorDisplay ? (\n customError\n ) : (\n <FlexCol alignItems=\"center\" {...props}>\n <ErrorAlert error={error} errorContext={errorContext} onCancel={onCancel} />\n </FlexCol>\n )}\n </FlexCol>\n )\n } else {\n return <>{children}</> ?? null\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,2BAA+C;AAC/C,IAAAA,gBAAgD;;;ACDhD,4BAAsC;AACtC,sBAA0D;AAC1D,0BAAyB;AAWrB;AAFG,IAAM,aAAwC,CAAC,EAAE,UAAU,OAAO,cAAc,GAAG,MAAM,MAAM;AACpG,SACE,6CAAC,yBAAM,UAAS,SAAS,GAAG,OAC1B;AAAA,gDAAC,8BAAW,0CAA4B;AAAA,IACvC,eACC,4CAAC,8BAAW,SAAQ,WAAU,IAAI,KAAK,YAAW,KAAI,SAAQ,SAC3D,wBACH,IACE;AAAA,IACJ,4CAAC,8BAAW,SAAQ,WAAU,IAAI,KAAK,YAAW,QAAO,oBAEzD;AAAA,IACA,4CAAC,8BAAW,SAAQ,WAAW,iBAAO,SAAQ;AAAA,IAC7C,WACC,4CAAC,gCAAS,SAAQ,YAAW,MAAK,SAAQ,SAAS,UAAU,UAAS,YAAW,OAAO,EAAE,OAAO,GAAG,KAAK,EAAE,GACzG,sDAAC,sBAAAC,WAAA,EAAS,UAAS,SAAQ,GAC7B,IACE;AAAA,KACN;AAEJ;;;AC/BA,2BAAwB;AACxB,mBAA0B;AAC1B,8BAA4B;AA+BhB,IAAAC,sBAAA;AA1BL,IAAM,cAA0C,CAAC;AAAA,EACtD;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,eAAW,qCAAY;AAC7B,8BAAU,MAAM;AAEd,aAAS,QAAQ;AAAA,MACf,MAAM;AAAA,QACJ,UAAU,OAAO,SAAS;AAAA,MAC5B;AAAA,IACF;AAAA,EACF,GAAG,CAAC,QAAQ,CAAC;AAEb,MAAI,OAAO;AACT,WACE,6CAAC,gCAAQ,YAAW,WAAW,GAAG,OAC/B,2BACC,cAEA,6CAAC,gCAAQ,YAAW,UAAU,GAAG,OAC/B,uDAAC,cAAW,OAAc,cAA4B,UAAoB,GAC5E,GAEJ;AAAA,EAEJ,OAAO;AACL,WAAO,6EAAG,UAAS,KAAO;AAAA,EAC5B;AACF;;;AFWa,IAAAC,sBAAA;AAlCN,IAAM,sBAAN,MAAM,6BAA4B,wBAA8D;AAAA,EACrF,QAAkC;AAAA,IAChD,UAAU;AAAA,EACZ;AAAA,EAEA,OAAO,yBAAyB,OAAc;AAC5C,WAAO,EAAE,UAAU,MAAM,UAAU,qBAAoB,eAAe,KAAK,EAAE;AAAA,EAC/E;AAAA,EAEA,OAAc,eAAe,OAAyC;AACpE,WACG,MAAsB,WAAW,yCAAoB,QAAQ,EAAE,SAAS,MAAM,SAAS,QAAQ,wCAAmB,SAAS,CAAC,EAAE;AAAA,EAEnI;AAAA,EAEgB,kBAAkB,OAAc,WAAsB;AACpE,UAAM,EAAE,SAAS,QAAQ,IAAI,KAAK;AAClC,UAAM,EAAE,SAAS,IAAI,KAAK;AAE1B,aAAS,MAAM,KAAK;AAEpB,YAAQ,MAAM,UAAU,UAAU,SAAS;AAC3C,QAAI,SAAS;AACX,YAAM;AAAA,IACR;AAAA,EACF;AAAA,EAEgB,SAAS;AACvB,UAAM,EAAE,SAAS,IAAI,KAAK;AAC1B,UAAM,EAAE,UAAU,cAAc,eAAe,IAAI,KAAK;AACxD,QAAI,UAAU;AACZ,UAAI,gBAAgB;AAClB,eAAO,eAAe,QAAQ;AAAA,MAChC;AACA,aAAO,6CAAC,eAAY,OAAO,UAAU,cAAc,GAAG,YAAY,aAAa;AAAA,IACjF;AAEA,WAAO;AAAA,EACT;AACF;","names":["import_react","ExitIcon","import_jsx_runtime","import_jsx_runtime"]}
@@ -0,0 +1,2 @@
1
+ export * from './ThrownErrorBoundary';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ErrorBoundary/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/components/ErrorRender/ErrorAlert.tsx
21
+ var ErrorAlert_exports = {};
22
+ __export(ErrorAlert_exports, {
23
+ ErrorAlert: () => ErrorAlert
24
+ });
25
+ module.exports = __toCommonJS(ErrorAlert_exports);
26
+ var import_icons_material = require("@mui/icons-material");
27
+ var import_material = require("@mui/material");
28
+ var import_react_button = require("@xylabs/react-button");
29
+ var import_jsx_runtime = require("react/jsx-runtime");
30
+ var ErrorAlert = ({ onCancel, error, errorContext, ...props }) => {
31
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_material.Alert, { severity: "error", ...props, children: [
32
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.AlertTitle, { children: "Whoops! Something went wrong" }),
33
+ errorContext ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, { variant: "caption", my: 0.5, lineHeight: "1", display: "block", children: errorContext }) : null,
34
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, { variant: "caption", mr: 0.5, fontWeight: "bold", children: "Error:" }),
35
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, { variant: "caption", children: error?.message }),
36
+ onCancel ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_button.ButtonEx, { variant: "outlined", size: "small", onClick: onCancel, position: "absolute", style: { right: 8, top: 8 }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons_material.ExitToApp, { fontSize: "small" }) }) : null
37
+ ] });
38
+ };
39
+ //# sourceMappingURL=ErrorAlert.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ErrorRender/ErrorAlert.tsx"],"sourcesContent":["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}\n\nexport const ErrorAlert: React.FC<ErrorAlertProps> = ({ onCancel, error, errorContext, ...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 <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"],"mappings":"AAaI,SACE,KADF;AAbJ,SAAS,aAAa,gBAAgB;AACtC,SAAS,OAAmB,YAAY,kBAAkB;AAC1D,SAAS,gBAAgB;AASlB,MAAM,aAAwC,CAAC,EAAE,UAAU,OAAO,cAAc,GAAG,MAAM,MAAM;AACpG,SACE,qBAAC,SAAM,UAAS,SAAS,GAAG,OAC1B;AAAA,wBAAC,cAAW,0CAA4B;AAAA,IACvC,eACC,oBAAC,cAAW,SAAQ,WAAU,IAAI,KAAK,YAAW,KAAI,SAAQ,SAC3D,wBACH,IACE;AAAA,IACJ,oBAAC,cAAW,SAAQ,WAAU,IAAI,KAAK,YAAW,QAAO,oBAEzD;AAAA,IACA,oBAAC,cAAW,SAAQ,WAAW,iBAAO,SAAQ;AAAA,IAC7C,WACC,oBAAC,YAAS,SAAQ,YAAW,MAAK,SAAQ,SAAS,UAAU,UAAS,YAAW,OAAO,EAAE,OAAO,GAAG,KAAK,EAAE,GACzG,8BAAC,YAAS,UAAS,SAAQ,GAC7B,IACE;AAAA,KACN;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../../src/components/ErrorRender/ErrorAlert.tsx"],"sourcesContent":["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}\n\nexport const ErrorAlert: React.FC<ErrorAlertProps> = ({ onCancel, error, errorContext, ...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 <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"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAAsC;AACtC,sBAA0D;AAC1D,0BAAyB;AAWrB;AAFG,IAAM,aAAwC,CAAC,EAAE,UAAU,OAAO,cAAc,GAAG,MAAM,MAAM;AACpG,SACE,6CAAC,yBAAM,UAAS,SAAS,GAAG,OAC1B;AAAA,gDAAC,8BAAW,0CAA4B;AAAA,IACvC,eACC,4CAAC,8BAAW,SAAQ,WAAU,IAAI,KAAK,YAAW,KAAI,SAAQ,SAC3D,wBACH,IACE;AAAA,IACJ,4CAAC,8BAAW,SAAQ,WAAU,IAAI,KAAK,YAAW,QAAO,oBAEzD;AAAA,IACA,4CAAC,8BAAW,SAAQ,WAAW,iBAAO,SAAQ;AAAA,IAC7C,WACC,4CAAC,gCAAS,SAAQ,YAAW,MAAK,SAAQ,SAAS,UAAU,UAAS,YAAW,OAAO,EAAE,OAAO,GAAG,KAAK,EAAE,GACzG,sDAAC,sBAAAA,WAAA,EAAS,UAAS,SAAQ,GAC7B,IACE;AAAA,KACN;AAEJ;","names":["ExitIcon"]}
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ import { AlertProps } from '@mui/material';
3
+ import { ModuleError } from '@xyo-network/payload-model';
4
+ export interface ErrorAlertProps extends AlertProps {
5
+ error?: ModuleError | Error;
6
+ errorContext?: string;
7
+ onCancel?: () => void;
8
+ }
9
+ export declare const ErrorAlert: React.FC<ErrorAlertProps>;
10
+ //# sourceMappingURL=ErrorAlert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorAlert.d.ts","sourceRoot":"","sources":["../../../../src/components/ErrorRender/ErrorAlert.tsx"],"names":[],"mappings":";AACA,OAAO,EAAS,UAAU,EAA0B,MAAM,eAAe,CAAA;AAEzE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAExD,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,KAAK,CAAC,EAAE,WAAW,GAAG,KAAK,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CACtB;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAoBhD,CAAA"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+
16
+ // src/components/ErrorRender/Props.ts
17
+ var Props_exports = {};
18
+ module.exports = __toCommonJS(Props_exports);
19
+ //# sourceMappingURL=Props.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/ErrorRender/Props.ts"],"sourcesContent":["import { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { ModuleError } from '@xyo-network/payload-model'\nimport { ReactNode } from 'react'\n\nexport interface ErrorRenderProps extends FlexBoxProps {\n customError?: ReactNode\n error?: ModuleError | Error\n errorContext?: string\n noErrorDisplay?: boolean\n noReAuth?: boolean\n onCancel?: () => void\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -0,0 +1,12 @@
1
+ import { FlexBoxProps } from '@xylabs/react-flexbox';
2
+ import { ModuleError } from '@xyo-network/payload-model';
3
+ import { ReactNode } from 'react';
4
+ export interface ErrorRenderProps extends FlexBoxProps {
5
+ customError?: ReactNode;
6
+ error?: ModuleError | Error;
7
+ errorContext?: string;
8
+ noErrorDisplay?: boolean;
9
+ noReAuth?: boolean;
10
+ onCancel?: () => void;
11
+ }
12
+ //# sourceMappingURL=Props.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Props.d.ts","sourceRoot":"","sources":["../../../../src/components/ErrorRender/Props.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,KAAK,CAAC,EAAE,WAAW,GAAG,KAAK,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CACtB"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/components/ErrorRender/Render.tsx
21
+ var Render_exports = {};
22
+ __export(Render_exports, {
23
+ ErrorRender: () => ErrorRender
24
+ });
25
+ module.exports = __toCommonJS(Render_exports);
26
+ var import_react_flexbox = require("@xylabs/react-flexbox");
27
+ var import_react = require("react");
28
+ var import_react_router_dom = require("react-router-dom");
29
+
30
+ // src/components/ErrorRender/ErrorAlert.tsx
31
+ var import_icons_material = require("@mui/icons-material");
32
+ var import_material = require("@mui/material");
33
+ var import_react_button = require("@xylabs/react-button");
34
+ var import_jsx_runtime = require("react/jsx-runtime");
35
+ var ErrorAlert = ({ onCancel, error, errorContext, ...props }) => {
36
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_material.Alert, { severity: "error", ...props, children: [
37
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.AlertTitle, { children: "Whoops! Something went wrong" }),
38
+ errorContext ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, { variant: "caption", my: 0.5, lineHeight: "1", display: "block", children: errorContext }) : null,
39
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, { variant: "caption", mr: 0.5, fontWeight: "bold", children: "Error:" }),
40
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, { variant: "caption", children: error?.message }),
41
+ onCancel ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_button.ButtonEx, { variant: "outlined", size: "small", onClick: onCancel, position: "absolute", style: { right: 8, top: 8 }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons_material.ExitToApp, { fontSize: "small" }) }) : null
42
+ ] });
43
+ };
44
+
45
+ // src/components/ErrorRender/Render.tsx
46
+ var import_jsx_runtime2 = require("react/jsx-runtime");
47
+ var ErrorRender = ({
48
+ onCancel,
49
+ error,
50
+ noErrorDisplay = false,
51
+ customError = null,
52
+ children,
53
+ errorContext,
54
+ ...props
55
+ }) => {
56
+ const location = (0, import_react_router_dom.useLocation)();
57
+ (0, import_react.useEffect)(() => {
58
+ location.state = {
59
+ from: {
60
+ pathname: window.location.pathname
61
+ }
62
+ };
63
+ }, [location]);
64
+ if (error) {
65
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_flexbox.FlexCol, { alignItems: "stretch", ...props, children: noErrorDisplay ? customError : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_flexbox.FlexCol, { alignItems: "center", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ErrorAlert, { error, errorContext, onCancel }) }) });
66
+ } else {
67
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_jsx_runtime2.Fragment, { children }) ?? null;
68
+ }
69
+ };
70
+ //# sourceMappingURL=Render.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/ErrorRender/Render.tsx","../../../../src/components/ErrorRender/ErrorAlert.tsx"],"sourcesContent":["import { FlexCol } from '@xylabs/react-flexbox'\nimport { useEffect } from 'react'\nimport { useLocation } from 'react-router-dom'\n\nimport { ErrorAlert } from './ErrorAlert'\nimport { ErrorRenderProps } from './Props'\n\nexport const ErrorRender: React.FC<ErrorRenderProps> = ({\n onCancel,\n error,\n noErrorDisplay = false,\n customError = null,\n children,\n errorContext,\n ...props\n}) => {\n const location = useLocation()\n useEffect(() => {\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 }, [location])\n\n if (error) {\n return (\n <FlexCol alignItems=\"stretch\" {...props}>\n {noErrorDisplay ? (\n customError\n ) : (\n <FlexCol alignItems=\"center\" {...props}>\n <ErrorAlert error={error} errorContext={errorContext} onCancel={onCancel} />\n </FlexCol>\n )}\n </FlexCol>\n )\n } else {\n return <>{children}</> ?? null\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}\n\nexport const ErrorAlert: React.FC<ErrorAlertProps> = ({ onCancel, error, errorContext, ...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 <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"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAAwB;AACxB,mBAA0B;AAC1B,8BAA4B;;;ACF5B,4BAAsC;AACtC,sBAA0D;AAC1D,0BAAyB;AAWrB;AAFG,IAAM,aAAwC,CAAC,EAAE,UAAU,OAAO,cAAc,GAAG,MAAM,MAAM;AACpG,SACE,6CAAC,yBAAM,UAAS,SAAS,GAAG,OAC1B;AAAA,gDAAC,8BAAW,0CAA4B;AAAA,IACvC,eACC,4CAAC,8BAAW,SAAQ,WAAU,IAAI,KAAK,YAAW,KAAI,SAAQ,SAC3D,wBACH,IACE;AAAA,IACJ,4CAAC,8BAAW,SAAQ,WAAU,IAAI,KAAK,YAAW,QAAO,oBAEzD;AAAA,IACA,4CAAC,8BAAW,SAAQ,WAAW,iBAAO,SAAQ;AAAA,IAC7C,WACC,4CAAC,gCAAS,SAAQ,YAAW,MAAK,SAAQ,SAAS,UAAU,UAAS,YAAW,OAAO,EAAE,OAAO,GAAG,KAAK,EAAE,GACzG,sDAAC,sBAAAA,WAAA,EAAS,UAAS,SAAQ,GAC7B,IACE;AAAA,KACN;AAEJ;;;ADEY,IAAAC,sBAAA;AA1BL,IAAM,cAA0C,CAAC;AAAA,EACtD;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,eAAW,qCAAY;AAC7B,8BAAU,MAAM;AAEd,aAAS,QAAQ;AAAA,MACf,MAAM;AAAA,QACJ,UAAU,OAAO,SAAS;AAAA,MAC5B;AAAA,IACF;AAAA,EACF,GAAG,CAAC,QAAQ,CAAC;AAEb,MAAI,OAAO;AACT,WACE,6CAAC,gCAAQ,YAAW,WAAW,GAAG,OAC/B,2BACC,cAEA,6CAAC,gCAAQ,YAAW,UAAU,GAAG,OAC/B,uDAAC,cAAW,OAAc,cAA4B,UAAoB,GAC5E,GAEJ;AAAA,EAEJ,OAAO;AACL,WAAO,6EAAG,UAAS,KAAO;AAAA,EAC5B;AACF;","names":["ExitIcon","import_jsx_runtime"]}
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import { ErrorRenderProps } from './Props';
3
+ export declare const ErrorRender: React.FC<ErrorRenderProps>;
4
+ //# sourceMappingURL=Render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Render.d.ts","sourceRoot":"","sources":["../../../../src/components/ErrorRender/Render.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE1C,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAkClD,CAAA"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/components/ErrorRender/index.ts
21
+ var ErrorRender_exports = {};
22
+ __export(ErrorRender_exports, {
23
+ ErrorAlert: () => ErrorAlert,
24
+ ErrorRender: () => ErrorRender
25
+ });
26
+ module.exports = __toCommonJS(ErrorRender_exports);
27
+
28
+ // src/components/ErrorRender/ErrorAlert.tsx
29
+ var import_icons_material = require("@mui/icons-material");
30
+ var import_material = require("@mui/material");
31
+ var import_react_button = require("@xylabs/react-button");
32
+ var import_jsx_runtime = require("react/jsx-runtime");
33
+ var ErrorAlert = ({ onCancel, error, errorContext, ...props }) => {
34
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_material.Alert, { severity: "error", ...props, children: [
35
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.AlertTitle, { children: "Whoops! Something went wrong" }),
36
+ errorContext ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, { variant: "caption", my: 0.5, lineHeight: "1", display: "block", children: errorContext }) : null,
37
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, { variant: "caption", mr: 0.5, fontWeight: "bold", children: "Error:" }),
38
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, { variant: "caption", children: error?.message }),
39
+ onCancel ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_button.ButtonEx, { variant: "outlined", size: "small", onClick: onCancel, position: "absolute", style: { right: 8, top: 8 }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons_material.ExitToApp, { fontSize: "small" }) }) : null
40
+ ] });
41
+ };
42
+
43
+ // src/components/ErrorRender/Render.tsx
44
+ var import_react_flexbox = require("@xylabs/react-flexbox");
45
+ var import_react = require("react");
46
+ var import_react_router_dom = require("react-router-dom");
47
+ var import_jsx_runtime2 = require("react/jsx-runtime");
48
+ var ErrorRender = ({
49
+ onCancel,
50
+ error,
51
+ noErrorDisplay = false,
52
+ customError = null,
53
+ children,
54
+ errorContext,
55
+ ...props
56
+ }) => {
57
+ const location = (0, import_react_router_dom.useLocation)();
58
+ (0, import_react.useEffect)(() => {
59
+ location.state = {
60
+ from: {
61
+ pathname: window.location.pathname
62
+ }
63
+ };
64
+ }, [location]);
65
+ if (error) {
66
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_flexbox.FlexCol, { alignItems: "stretch", ...props, children: noErrorDisplay ? customError : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_flexbox.FlexCol, { alignItems: "center", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ErrorAlert, { error, errorContext, onCancel }) }) });
67
+ } else {
68
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_jsx_runtime2.Fragment, { children }) ?? null;
69
+ }
70
+ };
71
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/ErrorRender/index.ts","../../../../src/components/ErrorRender/ErrorAlert.tsx","../../../../src/components/ErrorRender/Render.tsx"],"sourcesContent":["export * from './ErrorAlert'\nexport * from './Props'\nexport * from './Render'\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}\n\nexport const ErrorAlert: React.FC<ErrorAlertProps> = ({ onCancel, error, errorContext, ...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 <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'\nimport { useLocation } from 'react-router-dom'\n\nimport { ErrorAlert } from './ErrorAlert'\nimport { ErrorRenderProps } from './Props'\n\nexport const ErrorRender: React.FC<ErrorRenderProps> = ({\n onCancel,\n error,\n noErrorDisplay = false,\n customError = null,\n children,\n errorContext,\n ...props\n}) => {\n const location = useLocation()\n useEffect(() => {\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 }, [location])\n\n if (error) {\n return (\n <FlexCol alignItems=\"stretch\" {...props}>\n {noErrorDisplay ? (\n customError\n ) : (\n <FlexCol alignItems=\"center\" {...props}>\n <ErrorAlert error={error} errorContext={errorContext} onCancel={onCancel} />\n </FlexCol>\n )}\n </FlexCol>\n )\n } else {\n return <>{children}</> ?? null\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,4BAAsC;AACtC,sBAA0D;AAC1D,0BAAyB;AAWrB;AAFG,IAAM,aAAwC,CAAC,EAAE,UAAU,OAAO,cAAc,GAAG,MAAM,MAAM;AACpG,SACE,6CAAC,yBAAM,UAAS,SAAS,GAAG,OAC1B;AAAA,gDAAC,8BAAW,0CAA4B;AAAA,IACvC,eACC,4CAAC,8BAAW,SAAQ,WAAU,IAAI,KAAK,YAAW,KAAI,SAAQ,SAC3D,wBACH,IACE;AAAA,IACJ,4CAAC,8BAAW,SAAQ,WAAU,IAAI,KAAK,YAAW,QAAO,oBAEzD;AAAA,IACA,4CAAC,8BAAW,SAAQ,WAAW,iBAAO,SAAQ;AAAA,IAC7C,WACC,4CAAC,gCAAS,SAAQ,YAAW,MAAK,SAAQ,SAAS,UAAU,UAAS,YAAW,OAAO,EAAE,OAAO,GAAG,KAAK,EAAE,GACzG,sDAAC,sBAAAA,WAAA,EAAS,UAAS,SAAQ,GAC7B,IACE;AAAA,KACN;AAEJ;;;AC/BA,2BAAwB;AACxB,mBAA0B;AAC1B,8BAA4B;AA+BhB,IAAAC,sBAAA;AA1BL,IAAM,cAA0C,CAAC;AAAA,EACtD;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,eAAW,qCAAY;AAC7B,8BAAU,MAAM;AAEd,aAAS,QAAQ;AAAA,MACf,MAAM;AAAA,QACJ,UAAU,OAAO,SAAS;AAAA,MAC5B;AAAA,IACF;AAAA,EACF,GAAG,CAAC,QAAQ,CAAC;AAEb,MAAI,OAAO;AACT,WACE,6CAAC,gCAAQ,YAAW,WAAW,GAAG,OAC/B,2BACC,cAEA,6CAAC,gCAAQ,YAAW,UAAU,GAAG,OAC/B,uDAAC,cAAW,OAAc,cAA4B,UAAoB,GAC5E,GAEJ;AAAA,EAEJ,OAAO;AACL,WAAO,6EAAG,UAAS,KAAO;AAAA,EAC5B;AACF;","names":["ExitIcon","import_jsx_runtime"]}
@@ -0,0 +1,4 @@
1
+ export * from './ErrorAlert';
2
+ export * from './Props';
3
+ export * from './Render';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ErrorRender/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA"}