@pmcollab/coworkstream-analytics
v0.1.0
Published
Analytics emitter for @pmcollab/coworkstream with adapters for Segment, PostHog, Amplitude, and a generic console adapter.
Downloads
1,454
Readme
@pmcollab/coworkstream-analytics
Pre-wired analytics emitter for @pmcollab/coworkstream. Spread into the component once and every interaction fires a structured event.
Install
npm install @pmcollab/coworkstream-analyticsUse
import { WorkStream } from '@pmcollab/coworkstream'
import {
createAnalyticsHandlers,
segmentAdapter,
} from '@pmcollab/coworkstream-analytics'
const track = segmentAdapter(window.analytics)
const handlers = createAnalyticsHandlers({ track, prefix: 'inbox' })
<WorkStream items={items} {...handlers} />That fires inbox.workstream.action_fired, inbox.workstream.item_expanded, etc. into Segment.
Adapters
| Adapter | Wraps |
|---|---|
| segmentAdapter(window.analytics) | analytics.track(name, props) |
| posthogAdapter(posthog) | posthog.capture(name, props) |
| amplitudeAdapter(amplitude) | amplitude.track(name, props) |
| mixpanelAdapter(mixpanel) | mixpanel.track(name, props) |
| consoleAdapter | console.log (for dev) |
Or pass any function with the signature (name, props) => void.
Events emitted
| Event | When | Properties |
|---|---|---|
| workstream.item_clicked | Item row clicked | itemId, category, priority |
| workstream.item_expanded | Item expanded | itemId |
| workstream.item_collapsed | Open item closed | — |
| workstream.filter_changed | Filter chip selected | filterKey |
| workstream.action_fired | Any action button | action, itemId, category, priority |
| workstream.item_deferred_to_desktop | 🖥 button on mobile | itemId, … |
| workstream.item_cleared_from_desktop | "Dismiss" on banner | itemId, … |
| workstream.slot_error | renderDetails / renderActions throws | itemId, message, slotName |
License
Commercial. See LICENSE in the repository root.
