import { useState, useMemo, useRef, useEffect, useCallback } from 'react'; import { getData } from '../data'; import { Gantt, defaultColumns } from '../../src/'; import { Field, Switch } from '@svar-ui/react-core'; import './GanttPreventActions.css'; function GanttPreventActions({ skinSettings }) { const data = useMemo(() => getData(), []); const [add, setAdd] = useState(true); // if false - cannot add and edit task const [drag, setDrag] = useState(true); // if false - cannot drag tasks on scale const [order, setOrder] = useState(true); // if false - cannot reorder tasks in grid const [newLink, setNewLink] = useState(true); // if false - cannot create new links const [deleteLink, setDeleteLink] = useState(true); // if false - cannot delete links const [progress, setProgress] = useState(true); // if false - cannot edit progress in chart const dragRef = useRef(drag); const orderRef = useRef(order); useEffect(() => { dragRef.current = drag; }, [drag]); useEffect(() => { orderRef.current = order; }, [order]); const init = useCallback((gApi) => { gApi.intercept('drag-task', (ev) => { if (typeof ev.top !== 'undefined') return orderRef.current; return dragRef.current; // ev.width && ev.left }); }, []); const columns = useMemo( () => add ? defaultColumns : defaultColumns.filter((a) => a.id != 'add-task'), [add], ); return (