import { isError } from 'lodash' import Link from 'next/link' import { useRouter } from 'next/router' import { ClientSideExceptionHandler } from './ClientSideExceptionHandler' import { InsertBeforeRemoveChildErrorHandler } from './InsertBeforeRemoveChildErrorHandler' import { useIsFeatureEnabled } from '@/hooks/misc/useIsFeatureEnabled' export type FallbackProps = { error: unknown resetErrorBoundary: (...args: unknown[]) => void } export const GlobalErrorBoundaryState = ({ error, resetErrorBoundary }: FallbackProps) => { const router = useRouter() const checkIsError = isError(error) const largeLogo = useIsFeatureEnabled('branding:large_logo') const errorMessage = checkIsError ? error.message : '' const urlMessage = checkIsError ? `Path name: ${router.pathname}\n\n${error?.stack}` : '' const isRemoveChildError = checkIsError ? errorMessage.includes("Failed to execute 'removeChild' on 'Node'") : false const isInsertBeforeError = checkIsError ? errorMessage.includes("Failed to execute 'insertBefore' on 'Node'") : false // Get Sentry issue ID from error if available const sentryIssueId = (!!error && typeof error === 'object' && (error as any).sentryId) ?? '' return (
Briven
{isRemoveChildError || isInsertBeforeError ? ( ) : ( )}
) }