mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-18 05:34:09 +00:00
42 lines
1.6 KiB
TypeScript
42 lines
1.6 KiB
TypeScript
import { memo, useEffect, useMemo } from 'react';
|
|
|
|
import { EntryActionsProvider } from '../../../common/context/EntryActionsContext';
|
|
import useCustomFields from '../../../common/hooks-query/useCustomFields';
|
|
import { useLoadedRundownSource } from '../../../common/hooks-query/useScopedRundown';
|
|
import { useEntryActions } from '../../../common/hooks/useEntryAction';
|
|
import CuesheetDnd from '../../../views/cuesheet/cuesheet-dnd/CuesheetDnd';
|
|
import CuesheetTable from '../../../views/cuesheet/cuesheet-table/CuesheetTable';
|
|
import { useCuesheetPermissions } from '../../../views/cuesheet/useTablePermissions';
|
|
import { useEditorFollowMode } from '../useEditorFollowMode';
|
|
import { makeRundownColumns } from './makeRundownColumns';
|
|
|
|
export default memo(RundownTable);
|
|
function RundownTable() {
|
|
const { data: customFields } = useCustomFields();
|
|
const setPermissions = useCuesheetPermissions((state) => state.setPermissions);
|
|
const { editorMode } = useEditorFollowMode();
|
|
const source = useLoadedRundownSource();
|
|
const actions = useEntryActions();
|
|
|
|
// Editor always has full permissions
|
|
useEffect(() => {
|
|
setPermissions({
|
|
canChangeMode: true,
|
|
canCreateEntries: true,
|
|
canEditEntries: true,
|
|
canFlag: true,
|
|
canShare: true,
|
|
});
|
|
}, [setPermissions]);
|
|
|
|
const columns = useMemo(() => makeRundownColumns(customFields), [customFields]);
|
|
|
|
return (
|
|
<EntryActionsProvider actions={actions}>
|
|
<CuesheetDnd columns={columns} tableRoot='editor'>
|
|
<CuesheetTable columns={columns} source={source} cuesheetMode={editorMode} tableRoot='editor' />
|
|
</CuesheetDnd>
|
|
</EntryActionsProvider>
|
|
);
|
|
}
|