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

48 lines
1.2 KiB
JavaScript

import { useState, useMemo, useCallback, useContext } from 'react';
import { context } from '@svar-ui/react-core';
import { getData } from '../data';
import { Gantt, Toolbar, Editor, defaultToolbarButtons } from '../../src/';
import './GanttToolbarButtons.css';
export default function GanttToolbarButtons({ skinSettings }) {
const helpers = useContext(context.helpers);
const [api, setApi] = useState();
const data = useMemo(() => getData(), []);
const actionHandler = useCallback(() => {
helpers.showNotice({ text: "'My action' clicked" });
}, [helpers]);
const items = useMemo(() => {
const items = defaultToolbarButtons.filter((b) => {
return b.id?.indexOf('indent') === -1;
});
items.push({
id: 'my-action',
comp: 'icon',
icon: 'wxi-cat',
handler: actionHandler,
});
return items;
}, [actionHandler]);
return (
<>
<Toolbar api={api} items={items} />
<div className="wx-vkht5Uhi gtcell">
<Gantt
{...skinSettings}
init={setApi}
tasks={data.tasks}
links={data.links}
scales={data.scales}
/>
{api && <Editor api={api} />}
</div>
</>
);
}