'use client'; import { useState, useRef, useEffect } from 'react'; import Image from 'next/image'; import { useIsMobile } from '@/hooks/use-mobile'; export default function DraggableWindow() { const isMobile = useIsMobile(); const [isVisible, setIsVisible] = useState(true); const [position, setPosition] = useState({ x: 100, y: 100 }); const [isDragging, setIsDragging] = useState(false); const [dragOffset, setDragOffset] = useState({ x: 0, y: 0 }); const windowRef = useRef(null); const handleMouseDown = (e: React.MouseEvent) => { setIsDragging(true); if (windowRef.current) { const rect = windowRef.current.getBoundingClientRect(); setDragOffset({ x: e.clientX - rect.left, y: e.clientY - rect.top, }); } }; useEffect(() => { const handleMouseMove = (e: MouseEvent) => { if (!isDragging) return; setPosition({ x: e.clientX - dragOffset.x, y: e.clientY - dragOffset.y, }); }; const handleMouseUp = () => { setIsDragging(false); }; if (isDragging) { document.addEventListener('mousemove', handleMouseMove); document.addEventListener('mouseup', handleMouseUp); } return () => { document.removeEventListener('mousemove', handleMouseMove); document.removeEventListener('mouseup', handleMouseUp); }; }, [isDragging, dragOffset]); return ( isMobile ? (
Banner
) : ( isVisible && (
Draggable Window
) ) ); }