Files
react-gantt/demos/cases/ContextMenuHandler.jsx
Marta Kowalska 80ca059fb8 v2.3.1
2025-10-22 08:13:59 +00:00

42 lines
998 B
JavaScript

import { useState, useMemo, useCallback } from 'react';
import { getData } from '../data';
import { Gantt, ContextMenu, Editor } from '../../src/';
function ContextMenuHandler(props) {
const { skinSettings } = props;
const [api, setApi] = useState();
const data = useMemo(() => getData(), []);
const resolver = useCallback((id) => {
return id > 2;
}, []);
const filter = useCallback((option, task) => {
const type = task.type;
if (option.id) {
const ids = option.id.toString().split(':');
if (type == 'milestone' && ids[0] == 'add-task') return ids[1] != 'child';
}
return true;
}, []);
return (
<>
<ContextMenu api={api} resolver={resolver} filter={filter}>
<Gantt
init={setApi}
{...skinSettings}
tasks={data.tasks}
links={data.links}
scales={data.scales}
/>
</ContextMenu>
{api && <Editor api={api} />}
</>
);
}
export default ContextMenuHandler;