| 1 | import { createContext, useContext } from "react"; |
| 2 | import type { ChatCanvasPreview, resolveChatCanvasLayout } from "./chatCanvasLayout"; |
| 3 | import type { PreviewMiniPlayerObstacles } from "../preview/previewMiniPlayerLayout"; |
| 4 | |
| 5 | export 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 | |
| 18 | export const useChatCanvas = () => useContext(ChatCanvasContext); |