@xyo-network/react-error 3.0.1 → 3.0.3

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.
Files changed (41) hide show
  1. package/dist/browser/components/ErrorBoundary/ThrownErrorBoundary.d.ts +24 -0
  2. package/dist/browser/components/ErrorBoundary/ThrownErrorBoundary.d.ts.map +1 -0
  3. package/dist/browser/components/ErrorBoundary/index.d.ts +2 -0
  4. package/dist/browser/components/ErrorBoundary/index.d.ts.map +1 -0
  5. package/dist/browser/components/ErrorRender/ErrorAlert.d.ts +11 -0
  6. package/dist/browser/components/ErrorRender/ErrorAlert.d.ts.map +1 -0
  7. package/dist/browser/components/ErrorRender/Props.d.ts +15 -0
  8. package/dist/browser/components/ErrorRender/Props.d.ts.map +1 -0
  9. package/dist/browser/components/ErrorRender/Render.d.ts +4 -0
  10. package/dist/browser/components/ErrorRender/Render.d.ts.map +1 -0
  11. package/dist/browser/components/ErrorRender/index.d.ts +4 -0
  12. package/dist/browser/components/ErrorRender/index.d.ts.map +1 -0
  13. package/dist/browser/components/index.d.ts +3 -0
  14. package/dist/browser/components/index.d.ts.map +1 -0
  15. package/dist/browser/contexts/ErrorReporter/Context.d.ts +3 -0
  16. package/dist/browser/contexts/ErrorReporter/Context.d.ts.map +1 -0
  17. package/dist/browser/contexts/ErrorReporter/Provider.d.ts +9 -0
  18. package/dist/browser/contexts/ErrorReporter/Provider.d.ts.map +1 -0
  19. package/dist/browser/contexts/ErrorReporter/State.d.ts +5 -0
  20. package/dist/browser/contexts/ErrorReporter/State.d.ts.map +1 -0
  21. package/dist/browser/contexts/ErrorReporter/index.d.ts +4 -0
  22. package/dist/browser/contexts/ErrorReporter/index.d.ts.map +1 -0
  23. package/dist/browser/contexts/ErrorReporter/useRollbar.d.ts +3 -0
  24. package/dist/browser/contexts/ErrorReporter/useRollbar.d.ts.map +1 -0
  25. package/dist/browser/contexts/index.d.ts +2 -0
  26. package/dist/browser/contexts/index.d.ts.map +1 -0
  27. package/dist/browser/index.d.ts +3 -62
  28. package/dist/browser/index.d.ts.map +1 -0
  29. package/dist/browser/index.mjs.map +1 -1
  30. package/package.json +56 -49
  31. package/src/components/ErrorBoundary/ThrownErrorBoundary.stories.tsx +1 -1
  32. package/src/components/ErrorBoundary/ThrownErrorBoundary.tsx +12 -8
  33. package/src/components/ErrorRender/ErrorAlert.stories.tsx +8 -8
  34. package/src/components/ErrorRender/ErrorAlert.tsx +12 -3
  35. package/src/components/ErrorRender/Props.ts +4 -4
  36. package/src/components/ErrorRender/Render.tsx +2 -6
  37. package/src/contexts/ErrorReporter/Context.ts +1 -1
  38. package/src/contexts/ErrorReporter/Provider.stories.tsx +2 -6
  39. package/src/contexts/ErrorReporter/Provider.tsx +2 -2
  40. package/src/contexts/ErrorReporter/State.ts +1 -1
  41. package/xy.config.ts +2 -4
@@ -0,0 +1,24 @@
1
+ import type { ModuleError } from '@xyo-network/payload-model';
2
+ import type { ErrorInfo, ReactNode } from 'react';
3
+ import { Component } from 'react';
4
+ import type Rollbar from 'rollbar';
5
+ export interface ThrownErrorBoundaryProps {
6
+ boundaryName?: string;
7
+ children: ReactNode;
8
+ errorComponent?: (e: ModuleError, boundaryName?: string) => ReactNode;
9
+ rethrow?: boolean;
10
+ rollbar?: Rollbar;
11
+ scope?: string;
12
+ title?: string;
13
+ }
14
+ export interface ThrownErrorBoundaryState {
15
+ xyoError?: ModuleError;
16
+ }
17
+ export declare class ThrownErrorBoundary extends Component<ThrownErrorBoundaryProps, ThrownErrorBoundaryState> {
18
+ state: ThrownErrorBoundaryState;
19
+ static getDerivedStateFromError(error: Error): ThrownErrorBoundaryState;
20
+ static normalizeError(error: Error | ModuleError): ModuleError;
21
+ componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
22
+ render(): string | number | boolean | import("react/jsx-runtime").JSX.Element | Iterable<ReactNode> | null | undefined;
23
+ }
24
+ //# 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,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAE7D,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjD,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACxC,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAIlC,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;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,WAAW,CAAA;CACvB;AAED,qBAAa,mBAAoB,SAAQ,SAAS,CAAC,wBAAwB,EAAE,wBAAwB,CAAC;IAC3F,KAAK,EAAE,wBAAwB,CAA0B;IAElE,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GACwC,wBAAwB;IAG5G,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,WAAW,GAAG,WAAW;IASrD,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS;IAYpD,MAAM;CAchB"}
@@ -0,0 +1,2 @@
1
+ export * from './ThrownErrorBoundary.tsx';
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,2BAA2B,CAAA"}
@@ -0,0 +1,11 @@
1
+ import type { AlertProps } from '@mui/material';
2
+ import type { ModuleError } from '@xyo-network/payload-model';
3
+ import React from 'react';
4
+ export interface ErrorAlertProps extends AlertProps {
5
+ error?: ModuleError | Error | string;
6
+ errorContext?: string;
7
+ onCancel?: () => void;
8
+ scope?: string;
9
+ }
10
+ export declare const ErrorAlert: React.FC<ErrorAlertProps>;
11
+ //# 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,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAK/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,KAAK,CAAC,EAAE,WAAW,GAAG,KAAK,GAAG,MAAM,CAAA;IAEpC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA2ChD,CAAA"}
@@ -0,0 +1,15 @@
1
+ import type { FlexBoxProps } from '@xylabs/react-flexbox';
2
+ import type { ModuleError } from '@xyo-network/payload-model';
3
+ import type { ReactNode } from 'react';
4
+ import type { Location } from 'react-router-dom';
5
+ export interface ErrorRenderProps extends FlexBoxProps {
6
+ customError?: ReactNode;
7
+ error?: ModuleError | Error;
8
+ errorContext?: string;
9
+ noErrorDisplay?: boolean;
10
+ noReAuth?: boolean;
11
+ onCancel?: () => void;
12
+ scope?: string;
13
+ useLocation?: () => Location;
14
+ }
15
+ //# 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,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEhD,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;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,QAAQ,CAAA;CAC7B"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import type { ErrorRenderProps } from './Props.ts';
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":"AACA,OAAO,KAAoB,MAAM,OAAO,CAAA;AAGxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAgClD,CAAA"}
@@ -0,0 +1,4 @@
1
+ export * from './ErrorAlert.tsx';
2
+ export * from './Props.ts';
3
+ export * from './Render.tsx';
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,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './ErrorBoundary/index.ts';
2
+ export * from './ErrorRender/index.ts';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { ErrorReporterContextState } from './State.ts';
2
+ export declare const ErrorReporterContext: import("react").Context<ErrorReporterContextState>;
3
+ //# sourceMappingURL=Context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../../../src/contexts/ErrorReporter/Context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAE3D,eAAO,MAAM,oBAAoB,oDAA+C,CAAA"}
@@ -0,0 +1,9 @@
1
+ import type { WithChildren } from '@xylabs/react-shared';
2
+ import React from 'react';
3
+ import type Rollbar from 'rollbar';
4
+ export interface ErrorReporterProviderProps {
5
+ rollbar: Rollbar;
6
+ }
7
+ declare const ErrorReporterProvider: React.FC<WithChildren<ErrorReporterProviderProps>>;
8
+ export { ErrorReporterProvider };
9
+ //# sourceMappingURL=Provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../../src/contexts/ErrorReporter/Provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAA8B,MAAM,OAAO,CAAA;AAClD,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAIlC,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,QAAA,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,0BAA0B,CAAC,CAW7E,CAAA;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type Rollbar from 'rollbar';
2
+ export interface ErrorReporterContextState {
3
+ rollbar?: Rollbar;
4
+ }
5
+ //# sourceMappingURL=State.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"State.d.ts","sourceRoot":"","sources":["../../../../src/contexts/ErrorReporter/State.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAElC,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB"}
@@ -0,0 +1,4 @@
1
+ export * from './Provider.tsx';
2
+ export * from './State.ts';
3
+ export * from './useRollbar.tsx';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/contexts/ErrorReporter/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA"}
@@ -0,0 +1,3 @@
1
+ declare const useRollbar: () => import("./State.ts").ErrorReporterContextState;
2
+ export { useRollbar };
3
+ //# sourceMappingURL=useRollbar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRollbar.d.ts","sourceRoot":"","sources":["../../../../src/contexts/ErrorReporter/useRollbar.tsx"],"names":[],"mappings":"AAIA,QAAA,MAAM,UAAU,sDAOf,CAAA;AAED,OAAO,EAAE,UAAU,EAAE,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './ErrorReporter/index.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/contexts/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA"}
@@ -1,62 +1,3 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { ModuleError } from '@xyo-network/payload-model';
3
- import React, { ReactNode, Component, ErrorInfo } from 'react';
4
- import Rollbar from 'rollbar';
5
- import { AlertProps } from '@mui/material';
6
- import { FlexBoxProps } from '@xylabs/react-flexbox';
7
- import { Location } from 'react-router-dom';
8
- import { WithChildren } from '@xylabs/react-shared';
9
-
10
- interface ThrownErrorBoundaryProps {
11
- boundaryName?: string;
12
- children: ReactNode;
13
- errorComponent?: (e: ModuleError, boundaryName?: string) => ReactNode;
14
- rethrow?: boolean;
15
- rollbar?: Rollbar;
16
- scope?: string;
17
- title?: string;
18
- }
19
- interface ThrownErrorBoundaryState {
20
- xyoError?: ModuleError;
21
- }
22
- declare class ThrownErrorBoundary extends Component<ThrownErrorBoundaryProps, ThrownErrorBoundaryState> {
23
- state: ThrownErrorBoundaryState;
24
- static getDerivedStateFromError(error: Error): ThrownErrorBoundaryState;
25
- static normalizeError(error: Error | ModuleError): ModuleError;
26
- componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
27
- render(): string | number | boolean | react_jsx_runtime.JSX.Element | Iterable<React.ReactNode> | null | undefined;
28
- }
29
-
30
- interface ErrorAlertProps extends AlertProps {
31
- error?: ModuleError | Error | string;
32
- errorContext?: string;
33
- onCancel?: () => void;
34
- scope?: string;
35
- }
36
- declare const ErrorAlert: React.FC<ErrorAlertProps>;
37
-
38
- interface ErrorRenderProps extends FlexBoxProps {
39
- customError?: ReactNode;
40
- error?: ModuleError | Error;
41
- errorContext?: string;
42
- noErrorDisplay?: boolean;
43
- noReAuth?: boolean;
44
- onCancel?: () => void;
45
- scope?: string;
46
- useLocation?: () => Location;
47
- }
48
-
49
- declare const ErrorRender: React.FC<ErrorRenderProps>;
50
-
51
- interface ErrorReporterProviderProps {
52
- rollbar: Rollbar;
53
- }
54
- declare const ErrorReporterProvider: React.FC<WithChildren<ErrorReporterProviderProps>>;
55
-
56
- interface ErrorReporterContextState {
57
- rollbar?: Rollbar;
58
- }
59
-
60
- declare const useRollbar: () => ErrorReporterContextState;
61
-
62
- export { ErrorAlert, type ErrorAlertProps, ErrorRender, type ErrorRenderProps, type ErrorReporterContextState, ErrorReporterProvider, type ErrorReporterProviderProps, ThrownErrorBoundary, type ThrownErrorBoundaryProps, type ThrownErrorBoundaryState, useRollbar };
1
+ export * from './components/index.ts';
2
+ export * from './contexts/index.ts';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA"}
@@ -1 +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"]}
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 type { ModuleError } from '@xyo-network/payload-model'\nimport { ModuleErrorSchema } from '@xyo-network/payload-model'\nimport type { ErrorInfo, ReactNode } from 'react'\nimport React, { Component } from 'react'\nimport type 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 = { xyoError: undefined }\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 : {\n message: error.message, schema: ModuleErrorSchema, sources: [],\n }) 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 {\n children, boundaryName, errorComponent, scope, title,\n } = 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 type { AlertProps } from '@mui/material'\nimport {\n Alert, AlertTitle, Typography,\n} from '@mui/material'\nimport { ButtonEx } from '@xylabs/react-button'\nimport type { 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\n variant=\"outlined\"\n size=\"small\"\n onClick={onCancel}\n position=\"absolute\"\n style={{ right: 8, top: 8 }}\n >\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 type { 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 = { from: { pathname: window.location.pathname } }\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 type { WithChildren } from '@xylabs/react-shared'\nimport React, { useEffect, useState } from 'react'\nimport type 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 type { 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
@@ -1,20 +1,66 @@
1
1
  {
2
2
  "name": "@xyo-network/react-error",
3
+ "version": "3.0.3",
4
+ "description": "Common React library for all XYO projects that use React",
5
+ "keywords": [
6
+ "xyo",
7
+ "utility",
8
+ "typescript",
9
+ "react"
10
+ ],
11
+ "homepage": "https://xyo.network",
12
+ "bugs": {
13
+ "url": "git+https://github.com/XYOracleNetwork/sdk-xyo-react-js/issues",
14
+ "email": "support@xyo.network"
15
+ },
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git+https://github.com/XYOracleNetwork/sdk-xyo-react-js.git"
19
+ },
20
+ "license": "LGPL-3.0-only",
3
21
  "author": {
4
- "email": "support@xyo.network",
5
22
  "name": "XYO Development Team",
23
+ "email": "support@xyo.network",
6
24
  "url": "https://xyo.network"
7
25
  },
8
- "bugs": {
9
- "email": "support@xyo.network",
10
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/issues"
26
+ "sideEffects": false,
27
+ "type": "module",
28
+ "exports": {
29
+ ".": {
30
+ "import": {
31
+ "types": "./dist/browser/index.d.ts",
32
+ "default": "./dist/browser/index.mjs"
33
+ },
34
+ "types": "./dist/browser/index.d.ts",
35
+ "default": "./dist/browser/index.mjs"
36
+ },
37
+ "./package.json": "./package.json"
38
+ },
39
+ "module": "dist/browser/index.mjs",
40
+ "types": "dist/browser/index.d.ts",
41
+ "scripts": {
42
+ "license": "yarn license-checker --exclude \"MIT, ISC, Apache-2.0, BSD, BSD-2-Clause, CC-BY-4.0, Unlicense, CC-BY-3.0, CC0-1.0\"",
43
+ "lint-pkg": "npmPkgJsonLint ."
11
44
  },
12
45
  "dependencies": {
13
- "@xylabs/react-button": "^4.0.1",
14
- "@xylabs/react-flexbox": "^4.0.1",
15
- "@xylabs/react-shared": "^4.0.1",
16
- "@xyo-network/payload-model": "^3.0.2",
17
- "react-router-dom": "^6.26.0"
46
+ "@xylabs/react-button": "^4.0.3",
47
+ "@xylabs/react-flexbox": "^4.0.3",
48
+ "@xylabs/react-shared": "^4.0.3",
49
+ "@xyo-network/payload-model": "^3.0.15",
50
+ "react-router-dom": "^6.26.1"
51
+ },
52
+ "devDependencies": {
53
+ "@mui/icons-material": "^5.16.7",
54
+ "@mui/material": "^5.16.7",
55
+ "@mui/styles": "^5.16.7",
56
+ "@storybook/react": "^8.2.9",
57
+ "@xylabs/ts-scripts-yarn3": "^4.0.7",
58
+ "@xylabs/tsconfig-react": "^4.0.7",
59
+ "react": "^18.3.1",
60
+ "react-dom": "^18.3.1",
61
+ "rollbar": "^2.26.4",
62
+ "storybook": "^8.2.9",
63
+ "typescript": "^5.5.4"
18
64
  },
19
65
  "peerDependencies": {
20
66
  "@mui/icons-material": "^5",
@@ -24,52 +70,13 @@
24
70
  "react-dom": "^18",
25
71
  "rollbar": "^2"
26
72
  },
27
- "devDependencies": {
28
- "@storybook/react": "^8.2.9",
29
- "@xylabs/ts-scripts-yarn3": "^4.0.0-rc.15",
30
- "@xylabs/tsconfig-react": "^4.0.0-rc.15",
31
- "typescript": "^5.5.4"
32
- },
33
73
  "peerDependenciesMeta": {
34
74
  "rollbar": {
35
75
  "optional": true
36
76
  }
37
77
  },
38
- "description": "Common React library for all XYO projects that use React",
39
- "docs": "dist/docs.json",
40
- "exports": {
41
- ".": {
42
- "import": {
43
- "types": "./dist/browser/index.d.ts",
44
- "default": "./dist/browser/index.mjs"
45
- },
46
- "types": "./dist/browser/index.d.ts",
47
- "default": "./dist/browser/index.mjs"
48
- },
49
- "./package.json": "./package.json"
50
- },
51
- "module": "dist/browser/index.mjs",
52
- "homepage": "https://xyo.network",
53
- "keywords": [
54
- "xyo",
55
- "utility",
56
- "typescript",
57
- "react"
58
- ],
59
- "license": "LGPL-3.0-only",
60
78
  "publishConfig": {
61
79
  "access": "public"
62
80
  },
63
- "repository": {
64
- "type": "git",
65
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js.git"
66
- },
67
- "scripts": {
68
- "lint-pkg": "npmPkgJsonLint .",
69
- "license": "yarn license-checker --exclude \"MIT, ISC, Apache-2.0, BSD, BSD-2-Clause, CC-BY-4.0, Unlicense, CC-BY-3.0, CC0-1.0\""
70
- },
71
- "sideEffects": false,
72
- "types": "dist/browser/index.d.ts",
73
- "version": "3.0.1",
74
- "type": "module"
81
+ "docs": "dist/docs.json"
75
82
  }
@@ -1,5 +1,5 @@
1
1
  import { Alert } from '@mui/material'
2
- import { Meta, StoryFn } from '@storybook/react'
2
+ import type { Meta, StoryFn } from '@storybook/react'
3
3
  import React from 'react'
4
4
 
5
5
  import { ThrownErrorBoundary } from './ThrownErrorBoundary.tsx'
@@ -1,6 +1,8 @@
1
- import { ModuleError, ModuleErrorSchema } from '@xyo-network/payload-model'
2
- import React, { Component, ErrorInfo, ReactNode } from 'react'
3
- import Rollbar from 'rollbar'
1
+ import type { ModuleError } from '@xyo-network/payload-model'
2
+ import { ModuleErrorSchema } from '@xyo-network/payload-model'
3
+ import type { ErrorInfo, ReactNode } from 'react'
4
+ import React, { Component } from 'react'
5
+ import type Rollbar from 'rollbar'
4
6
 
5
7
  import { ErrorRender } from '../ErrorRender/index.ts'
6
8
 
@@ -19,9 +21,7 @@ export interface ThrownErrorBoundaryState {
19
21
  }
20
22
 
21
23
  export class ThrownErrorBoundary extends Component<ThrownErrorBoundaryProps, ThrownErrorBoundaryState> {
22
- override state: ThrownErrorBoundaryState = {
23
- xyoError: undefined,
24
- }
24
+ override state: ThrownErrorBoundaryState = { xyoError: undefined }
25
25
 
26
26
  static getDerivedStateFromError(error: Error) {
27
27
  return { hasError: true, xyoError: ThrownErrorBoundary.normalizeError(error) } as ThrownErrorBoundaryState
@@ -31,7 +31,9 @@ export class ThrownErrorBoundary extends Component<ThrownErrorBoundaryProps, Thr
31
31
  return (
32
32
  (error as ModuleError).schema === ModuleErrorSchema
33
33
  ? error
34
- : { message: error.message, schema: ModuleErrorSchema, sources: [] }) as ModuleError
34
+ : {
35
+ message: error.message, schema: ModuleErrorSchema, sources: [],
36
+ }) as ModuleError
35
37
  }
36
38
 
37
39
  override componentDidCatch(error: Error, errorInfo: ErrorInfo) {
@@ -48,7 +50,9 @@ export class ThrownErrorBoundary extends Component<ThrownErrorBoundaryProps, Thr
48
50
 
49
51
  override render() {
50
52
  const { xyoError } = this.state
51
- const { children, boundaryName, errorComponent, scope, title } = this.props
53
+ const {
54
+ children, boundaryName, errorComponent, scope, title,
55
+ } = this.props
52
56
  if (xyoError) {
53
57
  if (errorComponent) {
54
58
  return errorComponent(xyoError)
@@ -1,4 +1,4 @@
1
- import { Meta, StoryFn } from '@storybook/react'
1
+ import type { Meta, StoryFn } from '@storybook/react'
2
2
  import React from 'react'
3
3
 
4
4
  import { ErrorAlert } from './ErrorAlert.tsx'
@@ -6,11 +6,7 @@ import { ErrorAlert } from './ErrorAlert.tsx'
6
6
  const StorybookEntry: Meta = {
7
7
  argTypes: {},
8
8
  component: ErrorAlert,
9
- parameters: {
10
- docs: {
11
- page: null,
12
- },
13
- },
9
+ parameters: { docs: { page: null } },
14
10
  title: 'error/ErrorAlert',
15
11
  }
16
12
 
@@ -34,8 +30,12 @@ const WithErrorAndScope = Template.bind({})
34
30
  WithErrorAndScope.args = { error: 'An error happened', scope: 'Storybook' }
35
31
 
36
32
  const WithErrorAndScopeAndTitle = Template.bind({})
37
- WithErrorAndScopeAndTitle.args = { error: 'An error happened', scope: 'Storybook', title: 'Oh No!' }
33
+ WithErrorAndScopeAndTitle.args = {
34
+ error: 'An error happened', scope: 'Storybook', title: 'Oh No!',
35
+ }
38
36
 
39
- export { Default, WithError, WithErrorAndScope, WithErrorAndScopeAndTitle, WithScope, WithTitle }
37
+ export {
38
+ Default, WithError, WithErrorAndScope, WithErrorAndScopeAndTitle, WithScope, WithTitle,
39
+ }
40
40
 
41
41
  export default StorybookEntry
@@ -1,7 +1,10 @@
1
1
  import { ExitToApp as ExitIcon } from '@mui/icons-material'
2
- import { Alert, AlertProps, AlertTitle, Typography } from '@mui/material'
2
+ import type { AlertProps } from '@mui/material'
3
+ import {
4
+ Alert, AlertTitle, Typography,
5
+ } from '@mui/material'
3
6
  import { ButtonEx } from '@xylabs/react-button'
4
- import { ModuleError } from '@xyo-network/payload-model'
7
+ import type { ModuleError } from '@xyo-network/payload-model'
5
8
  import React from 'react'
6
9
 
7
10
  export interface ErrorAlertProps extends AlertProps {
@@ -42,7 +45,13 @@ export const ErrorAlert: React.FC<ErrorAlertProps> = ({
42
45
  </div>
43
46
  {onCancel
44
47
  ? (
45
- <ButtonEx variant="outlined" size="small" onClick={onCancel} position="absolute" style={{ right: 8, top: 8 }}>
48
+ <ButtonEx
49
+ variant="outlined"
50
+ size="small"
51
+ onClick={onCancel}
52
+ position="absolute"
53
+ style={{ right: 8, top: 8 }}
54
+ >
46
55
  <ExitIcon fontSize="small" />
47
56
  </ButtonEx>
48
57
  )
@@ -1,7 +1,7 @@
1
- import { FlexBoxProps } from '@xylabs/react-flexbox'
2
- import { ModuleError } from '@xyo-network/payload-model'
3
- import { ReactNode } from 'react'
4
- import { Location } from 'react-router-dom'
1
+ import type { FlexBoxProps } from '@xylabs/react-flexbox'
2
+ import type { ModuleError } from '@xyo-network/payload-model'
3
+ import type { ReactNode } from 'react'
4
+ import type { Location } from 'react-router-dom'
5
5
 
6
6
  export interface ErrorRenderProps extends FlexBoxProps {
7
7
  customError?: ReactNode
@@ -2,7 +2,7 @@ import { FlexCol } from '@xylabs/react-flexbox'
2
2
  import React, { useEffect } from 'react'
3
3
 
4
4
  import { ErrorAlert } from './ErrorAlert.tsx'
5
- import { ErrorRenderProps } from './Props.ts'
5
+ import type { ErrorRenderProps } from './Props.ts'
6
6
 
7
7
  export const ErrorRender: React.FC<ErrorRenderProps> = ({
8
8
  onCancel,
@@ -19,11 +19,7 @@ export const ErrorRender: React.FC<ErrorRenderProps> = ({
19
19
  useEffect(() => {
20
20
  if (location) {
21
21
  // ensure we end up at the same place we are now after logging in
22
- location.state = {
23
- from: {
24
- pathname: window.location.pathname,
25
- },
26
- }
22
+ location.state = { from: { pathname: window.location.pathname } }
27
23
  }
28
24
  }, [location])
29
25
 
@@ -1,5 +1,5 @@
1
1
  import { createContext } from 'react'
2
2
 
3
- import { ErrorReporterContextState } from './State.ts'
3
+ import type { ErrorReporterContextState } from './State.ts'
4
4
 
5
5
  export const ErrorReporterContext = createContext<ErrorReporterContextState>({})
@@ -1,5 +1,5 @@
1
1
  import { Typography } from '@mui/material'
2
- import { Meta, StoryFn } from '@storybook/react'
2
+ import type { Meta, StoryFn } from '@storybook/react'
3
3
  import React from 'react'
4
4
  import Rollbar from 'rollbar'
5
5
 
@@ -9,11 +9,7 @@ import { useRollbar } from './useRollbar.tsx'
9
9
  const StorybookEntry = {
10
10
  argTypes: {},
11
11
  component: ErrorReporterProvider,
12
- parameters: {
13
- docs: {
14
- page: null,
15
- },
16
- },
12
+ parameters: { docs: { page: null } },
17
13
  title: 'auth-service/ErrorReporterProvider',
18
14
  } as Meta<typeof ErrorReporterProvider>
19
15
 
@@ -1,6 +1,6 @@
1
- import { WithChildren } from '@xylabs/react-shared'
1
+ import type { WithChildren } from '@xylabs/react-shared'
2
2
  import React, { useEffect, useState } from 'react'
3
- import Rollbar from 'rollbar'
3
+ import type Rollbar from 'rollbar'
4
4
 
5
5
  import { ErrorReporterContext } from './Context.ts'
6
6
 
@@ -1,4 +1,4 @@
1
- import Rollbar from 'rollbar'
1
+ import type Rollbar from 'rollbar'
2
2
 
3
3
  export interface ErrorReporterContextState {
4
4
  rollbar?: Rollbar
package/xy.config.ts CHANGED
@@ -1,9 +1,7 @@
1
- import { XyTsupConfig } from '@xylabs/ts-scripts-yarn3'
1
+ import type { XyTsupConfig } from '@xylabs/ts-scripts-yarn3'
2
2
  const config: XyTsupConfig = {
3
3
  compile: {
4
- browser: {
5
- src: true,
6
- },
4
+ browser: { src: true },
7
5
  node: {},
8
6
  neutral: {},
9
7
  },