{"version":3,"file":"addReactError.mjs","names":[],"sources":["../../../src/domain/error/addReactError.ts"],"sourcesContent":["import type { ErrorInfo } from 'react'\nimport type { Context } from '@datadog/js-core/util'\nimport { clocksNow } from '@datadog/js-core/time'\nimport { callMonitored } from '@datadog/js-core/monitor'\nimport { createHandlingStack } from '@datadog/browser-core'\nimport { onRumStart } from '../reactPlugin'\n\n/**\n * Add a React error to the RUM session.\n *\n * @category Error\n * @example\n * ```ts\n * import { createRoot } from 'react-dom/client'\n * import { datadogRum } from '@datadog/browser-rum'\n * import { addReactError } from '@datadog/browser-rum-react'\n *\n * const container = document.getElementById('root')\n * const root = createRoot(container, {\n *   onUncaughtError: (error, errorInfo) => {\n *     // Report uncaught errors to Datadog\n *     addReactError(error, errorInfo)\n *   }\n * })\n * // ...\n * ```\n */\nexport function addReactError(error: unknown, info: ErrorInfo) {\n  const handlingStack = createHandlingStack('react error')\n  const startClocks = clocksNow()\n  onRumStart((addError) => {\n    callMonitored(() => {\n      addError({\n        error,\n        handlingStack,\n        componentStack: info.componentStack ?? undefined,\n        startClocks,\n        context: {\n          ...(typeof error === 'object' && error !== null ? (error as { dd_context?: Context }).dd_context : undefined),\n          framework: 'react',\n        },\n      })\n    })\n  })\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,SAAgB,cAAc,OAAgB,MAAiB;CAC7D,MAAM,gBAAgB,oBAAoB,aAAa;CACvD,MAAM,cAAc,UAAU;CAC9B,YAAY,aAAa;EACvB,oBAAoB;GAClB,SAAS;IACP;IACA;IACA,gBAAgB,KAAK,kBAAkB,KAAA;IACvC;IACA,SAAS;KACP,GAAI,OAAO,UAAU,YAAY,UAAU,OAAQ,MAAmC,aAAa,KAAA;KACnG,WAAW;IACb;GACF,CAAC;EACH,CAAC;CACH,CAAC;AACH"}