diff --git a/apps/client/src/features/operator/OperatorExport.tsx b/apps/client/src/features/operator/OperatorExport.tsx index ff3cf2747..f96c130f8 100644 --- a/apps/client/src/features/operator/OperatorExport.tsx +++ b/apps/client/src/features/operator/OperatorExport.tsx @@ -1,28 +1,12 @@ -import { useCallback } from 'react'; -import { useSearchParams } from 'react-router-dom'; -import { useDisclosure } from '@chakra-ui/react'; - -import FloatingNavigation from '../../common/components/navigation-menu/FloatingNavigation'; -import ProductionNavigationMenu from '../../common/components/navigation-menu/ProductionNavigationMenu'; +import ViewNavigationMenu from '../../common/components/navigation-menu/ViewNavigationMenu'; import ProtectRoute from '../../common/components/protect-route/ProtectRoute'; import Operator from './Operator'; export default function OperatorExport() { - const [searchParams, setSearchParams] = useSearchParams(); - const { isOpen, onOpen, onClose } = useDisclosure(); - - const showEditFormDrawer = useCallback(() => { - searchParams.set('edit', 'true'); - setSearchParams(searchParams); - }, [searchParams, setSearchParams]); - - const toggleMenu = isOpen ? onClose : onOpen; - return ( - - + ); diff --git a/apps/client/src/views/cuesheet/CuesheetPage.tsx b/apps/client/src/views/cuesheet/CuesheetPage.tsx index 0f69d5b74..d3dbf41cc 100644 --- a/apps/client/src/views/cuesheet/CuesheetPage.tsx +++ b/apps/client/src/views/cuesheet/CuesheetPage.tsx @@ -1,10 +1,10 @@ import { useCallback, useMemo, useState } from 'react'; -import { useSearchParams } from 'react-router-dom'; import { IconButton, Modal, ModalContent, ModalOverlay, useDisclosure } from '@chakra-ui/react'; import { IoApps } from '@react-icons/all-files/io5/IoApps'; import { IoSettingsOutline } from '@react-icons/all-files/io5/IoSettingsOutline'; -import ProductionNavigationMenu from '../../common/components/navigation-menu/ProductionNavigationMenu'; +import NavigationMenu from '../../common/components/navigation-menu/NavigationMenu'; +import useViewEditor from '../../common/components/navigation-menu/useViewEditor'; import EmptyPage from '../../common/components/state/EmptyPage'; import ViewParamsEditor from '../../common/components/view-params-editor/ViewParamsEditor'; import { useWindowTitle } from '../../common/hooks/useWindowTitle'; @@ -25,7 +25,7 @@ export default function CuesheetPage() { // TODO: can we use the normalised rundown for the table? const { data: flatRundown } = useFlatRundown(); const { data: customFields } = useCustomFields(); - const [searchParams, setSearchParams] = useSearchParams(); + const { showEditFormDrawer, isViewLocked } = useViewEditor({ isLockable: true }); const { isOpen: isMenuOpen, onOpen, onClose } = useDisclosure(); const { isOpen: isEventEditorOpen, onOpen: onEventEditorOpen, onClose: onEventEditorClose } = useDisclosure(); const [eventId, setEventId] = useState(null); @@ -34,12 +34,6 @@ export default function CuesheetPage() { useWindowTitle('Cuesheet'); - /** Handles showing the view params edit drawer */ - const showEditFormDrawer = useCallback(() => { - searchParams.set('edit', 'true'); - setSearchParams(searchParams); - }, [searchParams, setSearchParams]); - /** * Handles setting the edit modal target and visibility */ @@ -69,7 +63,7 @@ export default function CuesheetPage() {
- + } onClick={onOpen} + isDisabled={isViewLocked} /> } onClick={showEditFormDrawer} + isDisabled={isViewLocked} />