fix: add more properties to canvas context

This commit is contained in:
trafficlunar 2024-12-20 22:45:54 +00:00
parent 3019db6f06
commit d37574b90f
4 changed files with 30 additions and 24 deletions

View file

@ -5,13 +5,22 @@ interface Props {
}
export const CanvasContext = createContext({
stageSize: { width: 0, height: 0 } as Dimension,
canvasSize: { minX: 0, minY: 0, maxX: 0, maxY: 0 },
blocks: [] as Block[],
coords: { x: 0, y: 0 } as Position,
scale: 0,
setStageSize: ((size: Dimension) => {}) as React.Dispatch<React.SetStateAction<Dimension>>,
setBlocks: ((blocks: Block[]) => {}) as React.Dispatch<React.SetStateAction<Block[]>>,
setCoords: ((coords: Position) => {}) as React.Dispatch<React.SetStateAction<Position>>,
setScale: ((value: number) => {}) as React.Dispatch<React.SetStateAction<number>>,
});
export const CanvasProvider = ({ children }: Props) => {
const [stageSize, setStageSize] = useState({ width: 0, height: 0 } as Dimension);
const [blocks, setBlocks] = useState<Block[]>([]);
const [coords, setCoords] = useState<Position>({ x: 0, y: 0 });
const [scale, setScale] = useState(1);
const canvasSize = useMemo(() => {
let minX = Infinity,
@ -34,5 +43,9 @@ export const CanvasProvider = ({ children }: Props) => {
};
}, [blocks]);
return <CanvasContext.Provider value={{ canvasSize, blocks, setBlocks }}>{children}</CanvasContext.Provider>;
return (
<CanvasContext.Provider value={{ stageSize, canvasSize, blocks, coords, scale, setStageSize, setBlocks, setCoords, setScale }}>
{children}
</CanvasContext.Provider>
);
};