React
@larabug/react is the browser client plus an error boundary and three hooks. Everything in vanilla JavaScript applies here too.
Start it
React
import { init } from '@larabug/react'
init({
dsn: import.meta.env.VITE_LARABUG_DSN,
environment: import.meta.env.MODE,
})
Catch what React swallows
An error thrown while rendering does not reach window.onerror: React catches it and unmounts the tree. The boundary is how it gets reported.
React
import { ErrorBoundary } from '@larabug/react'
export default function App() {
return (
<ErrorBoundary fallback={<SomethingWentWrong />}>
<Routes />
</ErrorBoundary>
)
}
Put one high enough to catch anything, and put another around a widget that is allowed to fail without taking the page with it.
The hooks
React
import { useLaraBugUser, useLaraBugContext, useLaraBugTag } from '@larabug/react'
function Dashboard({ user, team }) {
useLaraBugUser({ id: user.id, plan: user.plan })
useLaraBugContext({ team_id: team.id })
useLaraBugTag('surface', 'dashboard')
return <Panels />
}
They attach to everything reported from that point, so an error three components down still arrives knowing whose team it happened in.