{"version":3,"sources":["../../src/components/ErrorBoundary.tsx"],"sourcesContent":["'use client'; // for server side rendering\n\nimport { PureComponent, type ReactNode } from 'react';\nimport { Alert, AlertTitle, styled } from '@mui/material';\n\nexport interface ErrorBoundaryProps {\n    errorTitle?: string;\n    children: ReactNode;\n}\n\ninterface ErrorBoundaryState {\n    error?: Error;\n}\n\nconst ErrorBoundaryDebugInfo = styled('code', {\n    name: 'MuiErrorBoundary',\n    slot: 'debugInfo',\n})`\n    display: block;\n    padding: ${({ theme }) => theme.spacing(2)};\n    margin: ${({ theme }) => theme.spacing(1.5)} 0 0;\n    overflow: auto;\n    pre {\n        margin: 0;\n        padding: 0;\n        overflow: initial;\n    }\n`;\n\n/**\n * https://reactjs.org/docs/error-boundaries.html\n */\nexport class ErrorBoundary extends PureComponent<ErrorBoundaryProps, ErrorBoundaryState> {\n    state: ErrorBoundaryState = {};\n\n    static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n        return { error };\n    }\n\n    render() {\n        const { errorTitle = 'Sorry, something went wrong.', children } = this.props;\n        const { error } = this.state;\n\n        // If there's no error, just return what renders via the happy path.\n        if (!error) {\n            return children;\n        }\n\n        const showErrorDetails = process.env.NODE_ENV === 'development';\n        return (\n            <Alert severity=\"error\">\n                <AlertTitle>{errorTitle}</AlertTitle>\n\n                {showErrorDetails ? (\n                    <p>\n                        <b>{error.message}:</b>\n                        <ErrorBoundaryDebugInfo>\n                            <pre>{error.stack || JSON.stringify(error, null, 2)}</pre>\n                        </ErrorBoundaryDebugInfo>\n                    </p>\n                ) : (\n                    <div>Please try again.</div>\n                )}\n            </Alert>\n        );\n    }\n}\n\nexport default ErrorBoundary;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAA8C;AAC9C,sBAA0C;AAgD1B;AArChB,IAAM,6BAAyB,wBAAO,QAAQ;AAAA,EAC1C,MAAM;AAAA,EACN,MAAM;AACV,CAAC;AAAA;AAAA,eAEc,CAAC,EAAE,MAAM,MAAM,MAAM,QAAQ,CAAC,CAAC;AAAA,cAChC,CAAC,EAAE,MAAM,MAAM,MAAM,QAAQ,GAAG,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYxC,IAAM,gBAAN,cAA4B,2BAAsD;AAAA,EACrF,QAA4B,CAAC;AAAA,EAE7B,OAAO,yBAAyB,OAAkC;AAC9D,WAAO,EAAE,MAAM;AAAA,EACnB;AAAA,EAEA,SAAS;AACL,UAAM,EAAE,aAAa,gCAAgC,SAAS,IAAI,KAAK;AACvE,UAAM,EAAE,MAAM,IAAI,KAAK;AAGvB,QAAI,CAAC,OAAO;AACR,aAAO;AAAA,IACX;AAEA,UAAM,mBAAmB,QAAQ,IAAI,aAAa;AAClD,WACI,6CAAC,yBAAM,UAAS,SACZ;AAAA,kDAAC,8BAAY,sBAAW;AAAA,MAEvB,mBACG,6CAAC,OACG;AAAA,qDAAC,OAAG;AAAA,gBAAM;AAAA,UAAQ;AAAA,WAAC;AAAA,QACnB,4CAAC,0BACG,sDAAC,SAAK,gBAAM,SAAS,KAAK,UAAU,OAAO,MAAM,CAAC,GAAE,GACxD;AAAA,SACJ,IAEA,4CAAC,SAAI,+BAAiB;AAAA,OAE9B;AAAA,EAER;AACJ;AAEA,IAAO,wBAAQ;","names":[]}