useTrackOnToggle
Monitors the given state
and runs and runs the given trueEvent
or falseEvent
depending on the given state value.
The false event can be omitted, in which case the hook will monitor the state and always trigger the only effect provided.
useTrackOnToggle = (parameters: {
state: boolean | (() => boolean),
trueEvent: TrackerEvent,
falseEvent?: TrackerEvent,
tracker?: Tracker
}) => void
Parameters
type | default value | ||
---|---|---|---|
required | state | boolean | () => boolean | |
required | trueEvent | TrackerEvent | |
optional | falseEvent | TrackerEvent | |
optional | tracker | ReactTracker |
Usage
with a boolean state
import { makeHiddenEvent, makeVisibleEvent } from "@objectiv/tracker-core";
import { useTrackOnToggle } from "@objectiv/tracker-react";
useTrackOnToggle({
state: isVisible,
trueEvent: makeVisibleEvent(),
falseEvent: makeHiddenEvent()
})
with a predicate state
import { makeHiddenEvent, makeVisibleEvent } from "@objectiv/tracker-core";
import { useTrackOnToggle } from "@objectiv/tracker-react";
useTrackOnToggle({
state: () => isVisible,
trueEvent: makeVisibleEvent(),
falseEvent: makeHiddenEvent()
})
without falseEvent
import { makeSuccessEvent } from "@objectiv/tracker-core";
import { useTrackOnToggle } from "@objectiv/tracker-react";
useTrackOnToggle({
state: () => isVisible,
trueEvent: makeSuccessEvent({ message: 'toggled!' })
})