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}
>
<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?resizeHandleWidth?
resizeHandleWidth?Last updated
