Threaded annotation sidebar with resolve, reply, edit, and delete via mock callbacks
Reply, resolve, edit, and delete are all wired to mock async callbacks.
| Prop | Type | Default | Description |
|---|---|---|---|
annotations | Annotation[] | [] | All annotations (roots + replies) |
profiles | Record<string, AnnotationProfile> | {} | User profiles keyed by user_id |
activeAnnotationId | string | null | null | Highlighted thread |
currentUserId | string | — | Viewer's user ID (shows edit/delete) |
callbacks | AnnotationCallbacks | — | Async handlers for CRUD ops |
onAnnotationSelect | (a: Annotation | null) => void | — | Thread selection callback |