import { useSessionStorage } from '@mantine/hooks'; import { memo } from 'react'; import * as Editor from '../../common/components/editor-utils/EditorUtils'; import ErrorBoundary from '../../common/components/error-boundary/ErrorBoundary'; import ViewNavigationMenu from '../../common/components/navigation-menu/ViewNavigationMenu'; import ProtectRoute from '../../common/components/protect-route/ProtectRoute'; import { EntryActionsProvider } from '../../common/context/EntryActionsContext'; import { useLoadedRundownSource } from '../../common/hooks-query/useScopedRundown'; import { useEntryActions } from '../../common/hooks/useEntryAction'; import { useIsSmallDevice } from '../../common/hooks/useIsSmallDevice'; import { handleLinks } from '../../common/utils/linkUtils'; import { cx } from '../../common/utils/styleUtils'; import { getIsNavigationLocked } from '../../externals'; import { AppMode } from '../../ontimeConfig'; import EntryEditModal from '../../views/cuesheet/cuesheet-edit-modal/EntryEditModal'; import { EditorLayoutMode, useEditorLayout } from '../../views/editor/useEditorLayout'; import RundownEntryEditor from './entry-editor/RundownEntryEditor'; import FinderPlacement from './placements/FinderPlacement'; import RenumberCuesDialog from './renumber-cues-dialog/RenumberCuesDialog'; import { RundownContextMenu } from './rundown-context-menu/RundownContextMenu'; import RundownHeader from './rundown-header/RundownHeader'; import RundownHeaderMobile from './rundown-header/RundownHeaderMobile'; import RundownTable from './rundown-table/RundownTable'; import { RundownViewMode } from './rundown.options'; import RundownList from './RundownList'; import { useEditorFollowMode } from './useEditorFollowMode'; import style from './RundownExport.module.scss'; export default memo(RundownExport); function RundownExport() { const isExtracted = window.location.pathname.includes('/rundown'); const { editorMode } = useEditorFollowMode(); const { layoutMode } = useEditorLayout(); const [viewMode, setViewMode] = useSessionStorage({ key: 'rundown-view-mode', defaultValue: RundownViewMode.List, }); const isSmallDevice = useIsSmallDevice(); const entryActions = useEntryActions(); if (isSmallDevice && isExtracted) { return (
); } const hideSideBar = layoutMode === EditorLayoutMode.TRACKING || (isExtracted && editorMode === AppMode.Run) || viewMode === RundownViewMode.Table; return (
{isExtracted && }
{!isExtracted && handleLinks('rundown', event)} />} {!hideSideBar && (
)}
); } interface RundownRootProps { isSmallDevice?: boolean; isExtracted?: boolean; viewMode: RundownViewMode; setViewMode: (mode: RundownViewMode) => void; } function RundownRoot({ isSmallDevice, isExtracted, viewMode, setViewMode }: RundownRootProps) { const source = useLoadedRundownSource(); return (
{isSmallDevice ? ( ) : ( )} {viewMode === RundownViewMode.List ? : } {viewMode === RundownViewMode.Table && }
); }