import { useEffect, useMemo, useState } from 'react';
import {
Gantt,
Editor,
registerEditorItem,
defaultTaskTypes,
getEditorItems,
} from '../../src';
import { RadioButtonGroup } from '@svar-ui/react-core';
import UsersCustomCombo from '../custom/UsersCustomCombo.jsx';
import AvatarCell from '../custom/AvatarCell.jsx';
import { getData, users } from '../data';
export default function GanttEditorCustomControls({ skinSettings }) {
useEffect(() => {
registerEditorItem('radio', RadioButtonGroup);
registerEditorItem('custom-combo', UsersCustomCombo);
}, []);
const items = useMemo(() => {
const defaultEditorItems = getEditorItems();
const items = defaultEditorItems.map((item) => ({ ...item }));
items.splice(
defaultEditorItems.findIndex((d) => d.key === 'type'),
1,
{
key: 'type',
comp: 'radio',
label: 'Type',
options: defaultTaskTypes.map((o) => ({
...o,
value: o.id,
})),
config: {
type: 'inline',
},
},
{
key: 'assigned',
comp: 'custom-combo',
label: 'Assigned',
options: users,
},
);
items.forEach((d) => {
if (d.comp === 'date') {
d.config = {
time: true,
};
}
});
return items;
}, []);
const data = useMemo(() => getData(), []);
const [api, setApi] = useState();
const columns = useMemo(
() => [
{ id: 'text', header: 'Task name', width: 220 },
{ id: 'assigned', header: 'Assigned', width: 160, cell: AvatarCell },
{ id: 'start', header: 'Start Date', width: 100 },
],
[],
);
return (
<>
{api && }
>
);
}