/* eslint-disable react-hooks/exhaustive-deps */ import { CanvasContext } from "@/context/Canvas"; import { useContext, useEffect, useState } from "react"; import _blockData from "@/data/blocks/data.json"; const blockData: BlockData = _blockData; interface Props { mouseCoords: Position; } function CursorInformation({ mouseCoords }: Props) { const { blocks } = useContext(CanvasContext); const [position, setPosition] = useState({ x: 0, y: 0 }); const [block, setBlock] = useState(); const [blockName, setBlockName] = useState(""); useEffect(() => { setPosition({ x: mouseCoords.x, y: mouseCoords.y, }); setBlock(blocks.find((b) => b.x === mouseCoords.x && b.y === mouseCoords.y)); }, [mouseCoords]); useEffect(() => { if (!block) { setBlockName("Air"); return; } setBlockName(blockData[block.name].name); }, [block]); return (
{blockName ?? "air"}
X: {position.x} Y: {position.y}
); } export default CursorInformation;