Files
DndGamePlayer/app/renderer/shared/sceneOverlay/SceneOverlayViewContext.tsx
T
Ivan Fontosh 153be98780 fix(materials): синхронизация легенды и маркеров на превью и презентации
Легенда и цифры на материале масштабируются от экрана игроков и не обрезаются жёлтой рамкой. Переключение сцен без записи project.json на диск.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 10:57:50 +08:00

21 lines
1017 B
TypeScript

import React, { createContext, useContext } from 'react';
import type { SceneOverlayViewport } from './overlayViewport';
export type SceneOverlayViewContextValue = {
/** Внешний контейнер оверлея (полная область превью / презентации). */
rootRef: React.RefObject<HTMLDivElement | null>;
/** Слой маркеров легенды на материале (вне clipped viewport). */
markerLayerRef: React.RefObject<HTMLDivElement | null>;
/** Размеры области раскладки материалов (viewport.w/h). */
view: { w: number; h: number };
/** Смещение и размер viewport внутри rootRef (contentRect на презентации). */
viewport: SceneOverlayViewport | null;
};
export const SceneOverlayViewContext = createContext<SceneOverlayViewContextValue | null>(null);
export function useSceneOverlayView(): SceneOverlayViewContextValue | null {
return useContext(SceneOverlayViewContext);
}