Use this hook to declare an HTML element as an item in the timeline.
This hook is based on dnd-kit's hook.
Please make sure you fully understand it's concepts before trying to use it here.
Options
id
id: string
A unique id to identify this item.
relevance
id: string
A unique id to identify this item.
disabled?
disabled?: boolean
An optional boolean to disable the interactivity of the item.
data?
data?: object
Custom data that can be passed to the row.
🧠This can be passed to rows to identify their type. This type can later be used in the event callbacks to apply different behaviors to different row types.
Item.tsx
Timeline.tsx
Events
useItem can also receive callbacks, that will be called when the relevant event is triggered.
For example:
const onResizeMove = useCallback(() => {
const updatedRelevance =
event.active.data.current.getRelevanceFromResizeEvent?.(event)
// update some local state with the updated-relevance
}, [])
useItem({
id: props.id,
relevance: props.relevance,
onResizeMove,
})