{"version":3,"file":"error-boundary.js?5e1529e04c42a49c9440","mappings":"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","sources":["webpack://@capitalise/container/./app/modules/ErrorBoundary/ErrorPage.tsx","webpack://@capitalise/container/./app/modules/ErrorBoundary/ErrorBoundary.tsx"],"sourcesContent":["import {\n Button,\n Box,\n Typography,\n IconRefresh,\n theme,\n FullLoadingSpinner,\n} from '@capitalise/ui-design-system';\nimport ConstructionGuy from 'assets/svgs/construction-guy.svg';\nimport CapitaliseLogo from 'assets/svgs/capitalise_text_logo.svg';\nimport { useEffect, useState } from 'react';\n\nconst ErrorPage = ({ isChunkLoadError }: { isChunkLoadError?: boolean }) => {\n const [fakeLoading, setFakeLoading] = useState(false);\n const handleRefresh = () => {\n sessionStorage.clear();\n window.location.reload();\n };\n\n const redirectHome = () => {\n sessionStorage.clear();\n localStorage.clear();\n window.location.replace(window._env_.APP_DOMAIN);\n };\n\n useEffect(() => {\n if (isChunkLoadError) {\n setFakeLoading(true);\n setTimeout(() => {\n setFakeLoading(false);\n }, 1500);\n }\n }, []);\n\n if (fakeLoading) {\n return ;\n }\n\n return (\n \n \n \n \n {isChunkLoadError ? '' : 'Something went wrong'}\n \n \n {isChunkLoadError\n ? 'Refresh to get the new version of our app'\n : `Sorry. We've hit an error!`}\n \n \n {isChunkLoadError\n ? `We've hit an error with this page as it has been updated. Please refresh the page to get the new version.`\n : `Our application has hit an issue which means we can't load the content you requested.\n Refresh this page or return home. Or contact support at support@capitalise.com to request\n additional help.`}\n \n \n }\n onClick={handleRefresh}\n >\n {' '}\n Refresh{' '}\n \n \n \n \n \n \n \n \n );\n};\n\nexport default ErrorPage;\n","import React from 'react';\nimport ErrorPage from './ErrorPage';\nimport logdna from '@logdna/browser';\n\ninterface IErrorBoundryState {\n hasError: boolean;\n isChunkLoadError: boolean;\n}\ninterface IErrorBoundryProps {\n children: React.ReactNode;\n}\n\nconst FORCE_REFRESH_STORE_KEY = 'page-has-been-force-refreshed';\n\nconst isChunkLoadError = (error: Error): boolean => error?.name === 'ChunkLoadError';\n\nclass ErrorBoundary extends React.Component {\n constructor(props: IErrorBoundryProps) {\n super(props);\n this.state = { hasError: false, isChunkLoadError: false };\n if (window._env_.LOGDNA_KEY) {\n const userToken = localStorage.getItem('platfi-ui-app/SESSION');\n logdna.init(window._env_.LOGDNA_KEY, {\n app: 'ui-app',\n globalErrorHandlers: false,\n enableStacktrace: false,\n console: false,\n });\n logdna.addContext({\n env: window._env_.RUNNING_ENV,\n user: userToken,\n });\n }\n }\n\n static getDerivedStateFromError(error: Error) {\n return { hasError: true, isChunkLoadError: isChunkLoadError(error) };\n }\n\n componentDidCatch(error: Error, info: unknown) {\n const forcedRefresh = JSON.parse(\n window.sessionStorage.getItem(FORCE_REFRESH_STORE_KEY) || 'false',\n );\n if (window._env_.LOGDNA_KEY) {\n logdna.error(error, { name: error.name, forcedRefresh });\n } else {\n console.warn('Error in component did Catch', error);\n console.warn('extra info', info);\n }\n if (isChunkLoadError(error) && !forcedRefresh) {\n window.sessionStorage.setItem(FORCE_REFRESH_STORE_KEY, 'true');\n return window.location.reload();\n }\n }\n\n render() {\n if (this.state.hasError) {\n return ;\n }\n return this?.props?.children || null;\n }\n}\n\nexport default ErrorBoundary;\n"],"names":["ErrorPage","isChunkLoadError","useState","fakeLoading","setFakeLoading","handleRefresh","sessionStorage","clear","window","location","reload","redirectHome","localStorage","replace","_env_","APP_DOMAIN","useEffect","setTimeout","FullLoadingSpinner","size","Box","position","width","backgroundColor","height","textAlign","flexPosition","flexDirection","paddingTop","_","md","CapitaliseLogo","fill","theme","Typography","color","typography","paddingY","paddingX","maxWidth","display","gap","Button","baseColor","variant","leftIcon","IconRefresh","onClick","bottom","zIndex","as","ConstructionGuy","FORCE_REFRESH_STORE_KEY","error","name","ErrorBoundary","props","state","hasError","LOGDNA_KEY","userToken","getItem","logdna","app","globalErrorHandlers","enableStacktrace","console","env","RUNNING_ENV","user","componentDidCatch","info","forcedRefresh","JSON","parse","warn","setItem","render","this","children","getDerivedStateFromError","React"],"sourceRoot":""}