UNPKG

@tldraw/editor

Version:

tldraw infinite canvas SDK (editor).

8 lines (7 loc) 1.99 kB
{ "version": 3, "sources": ["../../../src/lib/components/ErrorBoundary.tsx"], "sourcesContent": ["import * as React from 'react'\nimport { TLErrorFallbackComponent } from './default-components/DefaultErrorFallback'\n\n/** @public */\nexport interface TLErrorBoundaryProps {\n\tchildren: React.ReactNode\n\tonError?: ((error: unknown) => void) | null\n\tfallback: TLErrorFallbackComponent\n}\n\nconst initialState = { error: null }\n\n/** @public */\nexport class ErrorBoundary extends React.Component<\n\tReact.PropsWithRef<React.PropsWithChildren<TLErrorBoundaryProps>>,\n\t{ error: Error | null }\n> {\n\tstatic getDerivedStateFromError(error: Error) {\n\t\treturn { error }\n\t}\n\n\toverride state = initialState\n\n\toverride componentDidCatch(error: unknown) {\n\t\tthis.props.onError?.(error)\n\t}\n\n\toverride render() {\n\t\tconst { error } = this.state\n\n\t\tif (error !== null) {\n\t\t\tconst { fallback: Fallback } = this.props\n\t\t\treturn <Fallback error={error} />\n\t\t}\n\n\t\treturn this.props.children\n\t}\n}\n\n/** @internal */\nexport function OptionalErrorBoundary({\n\tchildren,\n\tfallback,\n\t...props\n}: Omit<TLErrorBoundaryProps, 'fallback'> & {\n\tfallback: TLErrorFallbackComponent\n}) {\n\tif (fallback === null) {\n\t\treturn children\n\t}\n\n\treturn (\n\t\t<ErrorBoundary fallback={fallback as any} {...props}>\n\t\t\t{children}\n\t\t</ErrorBoundary>\n\t)\n}\n"], "mappings": "AAgCU;AAhCV,YAAY,WAAW;AAUvB,MAAM,eAAe,EAAE,OAAO,KAAK;AAG5B,MAAM,sBAAsB,MAAM,UAGvC;AAAA,EACD,OAAO,yBAAyB,OAAc;AAC7C,WAAO,EAAE,MAAM;AAAA,EAChB;AAAA,EAES,QAAQ;AAAA,EAER,kBAAkB,OAAgB;AAC1C,SAAK,MAAM,UAAU,KAAK;AAAA,EAC3B;AAAA,EAES,SAAS;AACjB,UAAM,EAAE,MAAM,IAAI,KAAK;AAEvB,QAAI,UAAU,MAAM;AACnB,YAAM,EAAE,UAAU,SAAS,IAAI,KAAK;AACpC,aAAO,oBAAC,YAAS,OAAc;AAAA,IAChC;AAEA,WAAO,KAAK,MAAM;AAAA,EACnB;AACD;AAGO,SAAS,sBAAsB;AAAA,EACrC;AAAA,EACA;AAAA,EACA,GAAG;AACJ,GAEG;AACF,MAAI,aAAa,MAAM;AACtB,WAAO;AAAA,EACR;AAEA,SACC,oBAAC,iBAAc,UAA4B,GAAG,OAC5C,UACF;AAEF;", "names": [] }