diff --git a/src/components/QuickSettingsPanel.jsx b/src/components/QuickSettingsPanel.jsx index 391d183..fc69d49 100644 --- a/src/components/QuickSettingsPanel.jsx +++ b/src/components/QuickSettingsPanel.jsx @@ -27,8 +27,7 @@ import { useDeviceSettings } from '../hooks/useDeviceSettings'; const QuickSettingsPanel = () => { const { t } = useTranslation('settings'); - const [ isOpen, setIsOpen ] = useState(false); - const [localIsOpen, setLocalIsOpen] = useState(false); // ! Is this necessary? Can we just use isOpen? + const [isOpen, setIsOpen] = useState(false); const [whisperMode, setWhisperMode] = useState(() => { return localStorage.getItem('whisperMode') || 'default'; }); @@ -63,10 +62,6 @@ const QuickSettingsPanel = () => { const constraintsRef = useRef({ min: 10, max: 90 }); // Percentage constraints const dragThreshold = 5; // Pixels to move before it's considered a drag - useEffect(() => { - setLocalIsOpen(isOpen); - }, [isOpen]); - // Save handle position to localStorage when it changes useEffect(() => { localStorage.setItem('quickSettingsHandlePosition', JSON.stringify({ y: handlePosition })); @@ -203,9 +198,7 @@ const QuickSettingsPanel = () => { return; } - const newState = !localIsOpen; - setLocalIsOpen(newState); - setIsOpen(newState); + setIsOpen((previous) => !previous); }; return ( @@ -223,19 +216,19 @@ const QuickSettingsPanel = () => { handleDragStart(e); }} className={`fixed ${ - localIsOpen ? 'right-64' : 'right-0' + isOpen ? 'right-64' : 'right-0' } z-50 ${isDragging ? '' : 'transition-all duration-150 ease-out'} bg-white dark:bg-gray-800 border ${ isDragging ? 'border-blue-500 dark:border-blue-400' : 'border-gray-200 dark:border-gray-700' } rounded-l-md p-2 hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors shadow-lg ${ isDragging ? 'cursor-grabbing' : 'cursor-pointer' } touch-none`} style={{ ...getPositionStyle(), touchAction: 'none', WebkitTouchCallout: 'none', WebkitUserSelect: 'none' }} - aria-label={isDragging ? t('quickSettings.dragHandle.dragging') : localIsOpen ? t('quickSettings.dragHandle.closePanel') : t('quickSettings.dragHandle.openPanel')} + aria-label={isDragging ? t('quickSettings.dragHandle.dragging') : isOpen ? t('quickSettings.dragHandle.closePanel') : t('quickSettings.dragHandle.openPanel')} title={isDragging ? t('quickSettings.dragHandle.draggingStatus') : t('quickSettings.dragHandle.toggleAndMove')} > {isDragging ? ( - ) : localIsOpen ? ( + ) : isOpen ? ( ) : ( @@ -245,7 +238,7 @@ const QuickSettingsPanel = () => { {/* Panel */}
@@ -442,7 +435,7 @@ const QuickSettingsPanel = () => {
{/* Backdrop */} - {localIsOpen && ( + {isOpen && (