TimelineContext
function App() {
return (
<TimelineContext>
// You code here
</TimelineContext>
)
}Usage
function App() {
const [rows, setRows] = useRows();
const [items, setItems] = useItems();
const [range, setRange] = useState(DEFAULT_TIMEFRAME);
const onResizeEnd = useCallback((event: ResizeEndEvent) => {
const updatedSpan =
event.active.data.current.getSpanFromResizeEvent?.(event);
if (!updatedSpan) return;
const activeItemId = event.active.id;
// Only update the changed item. This will cause only the changed items to re-render
setItems((prev) =>
prev.map((item) => {
if (item.id !== activeItemId) return item;
return {
...item,
span: updatedSpan,
};
}),
);
}, []);
return (
<TimelineContext
onResizeEnd={onResizeEnd}
range={range}
onRangeChanged={setRange}
sidebarWidth={200}
>
<Timeline rows={rows} items={items} />
</TimelineContext>
);
}Props
Event Handlers
onDragStart? | onDragEnd? | onDragMove? | onDragCancel?
onDragStart? | onDragEnd? | onDragMove? | onDragCancel?onResizeStart?
onResizeStart?onResizeMove?
onResizeMove?onResizeEnd?
onResizeEnd?Options
range
rangeonRangeChanged
onRangeChangedoverlayed?
overlayed?rangeGridSizeDefinition?
rangeGridSizeDefinition?usePanStrategy?
Zoom & PanusePanStrategy?sidebarWidth
sidebarWidthresizeHandleWidth?
resizeHandleWidth?Last updated
