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}
/>