mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-07 18:26:17 +00:00
52 lines
1.4 KiB
TypeScript
52 lines
1.4 KiB
TypeScript
import { StrictMode } from "react";
|
|
import { createRoot } from "react-dom/client";
|
|
import { StudioApp } from "./App";
|
|
import { StudioErrorBoundary } from "./components/StudioErrorBoundary";
|
|
import { trackStudioEvent } from "./utils/studioTelemetry";
|
|
import "./styles/studio.css";
|
|
|
|
trackStudioEvent("session_start");
|
|
|
|
function errorProps(value: unknown): {
|
|
error_message: string;
|
|
error_name: string | null;
|
|
stack_trace: string | null;
|
|
} {
|
|
if (value instanceof Error) {
|
|
return {
|
|
error_message: value.message,
|
|
error_name: value.name,
|
|
stack_trace: value.stack?.slice(0, 4000) ?? null,
|
|
};
|
|
}
|
|
return { error_message: String(value), error_name: null, stack_trace: null };
|
|
}
|
|
|
|
window.addEventListener("error", (event) => {
|
|
if (event.message?.includes("ResizeObserver loop")) {
|
|
event.stopImmediatePropagation();
|
|
event.preventDefault();
|
|
return;
|
|
}
|
|
|
|
trackStudioEvent("unhandled_error", {
|
|
...errorProps(event.error),
|
|
error_message: event.message,
|
|
filename: event.filename,
|
|
lineno: event.lineno,
|
|
colno: event.colno,
|
|
});
|
|
});
|
|
|
|
window.addEventListener("unhandledrejection", (event) => {
|
|
trackStudioEvent("unhandled_promise_rejection", errorProps(event.reason));
|
|
});
|
|
|
|
createRoot(document.getElementById("root")!).render(
|
|
<StrictMode>
|
|
<StudioErrorBoundary>
|
|
<StudioApp />
|
|
</StudioErrorBoundary>
|
|
</StrictMode>,
|
|
);
|