import React, { useState, useRef } from 'react'; import { sidebarContent } from './Shifter/Sidebar'; import '../styles/shifter.css'; export default function Shifter() { const [sidebar, setSidebar] = useState(0); const [position, setPosition] = useState({ x: window.innerWidth / 2 - 350, y: window.innerHeight / 2 - 250 }); const [isDragging, setIsDragging] = useState(false); const dragRef = useRef({ startX: 0, startY: 0 }); function changeSidebar(window: number) { setSidebar(window); } function applyButton() { } function closeButton() { } function testOption() { console.log('Colour changed to red') document.documentElement.style.setProperty( '--titlebar-colour', 'red' ); localStorage.setItem("--titlebar-colour", "red"); } const handleMouseDown = (e: React.MouseEvent) => { e.preventDefault(); setIsDragging(true); dragRef.current = { startX: e.clientX - position.x, startY: e.clientY - position.y }; }; React.useEffect(() => { if (isDragging) { const handleMouseMoveWrapper = (e: MouseEvent) => { setPosition({ x: e.clientX - dragRef.current.startX, y: e.clientY - dragRef.current.startY }); }; const handleMouseUpWrapper = () => { setIsDragging(false); }; window.addEventListener('mousemove', handleMouseMoveWrapper); window.addEventListener('mouseup', handleMouseUpWrapper); return () => { window.removeEventListener('mousemove', handleMouseMoveWrapper); window.removeEventListener('mouseup', handleMouseUpWrapper); }; } }, [isDragging]); return ( <>