1import { createContext, useContext } from "react";
2import type { ChatCanvasPreview, resolveChatCanvasLayout } from "./chatCanvasLayout";
3import type { PreviewMiniPlayerObstacles } from "../preview/previewMiniPlayerLayout";
4
5export const ChatCanvasContext = createContext<{
6 container: { width: number; height: number };
7 lane: { padding: number; minChatWidth: number };
8 layout: ReturnType<typeof resolveChatCanvasLayout>;
9 previewKey: string | null;
10 reportPreview: (preview: ChatCanvasPreview) => void;
11 clearPreview: (key: string) => void;
12 registerTimeline: (element: HTMLElement | null) => void;
13 reportDetailsCard: (card: PreviewMiniPlayerObstacles["detailsCard"]) => void;
14 /** Height reserved above the details card, such as the open find bar. */
15 detailsCardTopInset: number;
16} | null>(null);
17
18export const useChatCanvas = () => useContext(ChatCanvasContext);