import { useState, useRef, useCallback } from "react"; export function useRoomVisualizer() { const [hoveredMask, setHoveredMask] = useState(null); const [selectedMasks, setSelectedMasks] = useState>(new Set()); const containerRef = useRef(null); const handleMaskMouseEnter = useCallback((maskUrl: string) => { setHoveredMask(maskUrl); }, []); const handleMaskMouseLeave = useCallback(() => { setHoveredMask(null); }, []); const handleMaskClick = useCallback((maskUrl: string) => { setSelectedMasks((prev) => { const newSelected = new Set(prev); if (newSelected.has(maskUrl)) { newSelected.delete(maskUrl); } else { newSelected.add(maskUrl); } return newSelected; }); }, []); return { containerRef, hoveredMask, selectedMasks, handleMaskClick, handleMaskMouseEnter, handleMaskMouseLeave, }; }