import { EnvelopeIcon } from "@heroicons/react/20/solid"; import { exceptionEventEnhancer, isExceptionSpanEvent, type ExceptionEventProperties, type SpanEvent as OtelSpanEvent, } from "@trigger.dev/core/v3"; import { CodeBlock } from "~/components/code/CodeBlock"; import { Feedback } from "~/components/Feedback"; import { Button } from "~/components/primitives/Buttons"; import { Callout } from "~/components/primitives/Callout"; import { DateTimeAccurate } from "~/components/primitives/DateTime"; import { Header3 } from "~/components/primitives/Headers"; import { Paragraph } from "~/components/primitives/Paragraph"; type SpanEventsProps = { spanEvents: OtelSpanEvent[]; }; export function SpanEvents({ spanEvents }: SpanEventsProps) { const displayableEvents = spanEvents.filter((event) => !event.name.startsWith("trigger.dev/")); if (displayableEvents.length === 0) { return null; } return (
{displayableEvents.map((event, index) => ( ))}
); } function SpanEventHeader({ title, titleClassName, time, }: { title: string; titleClassName?: string; time: Date; }) { return (
{title}
); } function SpanEvent({ spanEvent }: { spanEvent: OtelSpanEvent }) { if (isExceptionSpanEvent(spanEvent)) { return ; } return (
{spanEvent.properties && ( )}
); } export function SpanEventError({ spanEvent, exception, }: { spanEvent: OtelSpanEvent; exception: ExceptionEventProperties; }) { const enhancedException = exceptionEventEnhancer(exception); return (
{enhancedException.message && (
            {enhancedException.message}
          
)} {enhancedException.link && (enhancedException.link.magic === "CONTACT_FORM" ? ( {enhancedException.link.name} } /> ) : ( {enhancedException.link.name} ))} {enhancedException.stacktrace && ( )}
); }