Skip to main content

Type Alias: CrosshairEvent

type CrosshairEvent = {
active: boolean;
candle: Candle | null;
price: number | null;
reason: "show" | "move" | "hide";
timeMs: number | null;
};

Defined in: types/src/index.ts:24

Payload passed to onCrosshair as the crosshair shows, moves, or hides.

Properties

active

active: boolean;

Defined in: types/src/index.ts:26

True while the crosshair is showing; false when it's dismissed.


candle

candle: Candle | null;

Defined in: types/src/index.ts:33

OHLCV of the candle under the crosshair, or null when inactive. Also null when the crosshair is parked on a future candle-aligned slot in the empty space ahead of the most recent candle (no candle exists there yet) — use timeMs to read the slot's time in that case.


price

price: number | null;

Defined in: types/src/index.ts:44

Free price at the crosshair's horizontal line (what the price badge shows), in data space. Null when inactive. Pair with timeMs to mirror this crosshair onto another chart via its crosshairOverride prop.


reason

reason: "show" | "move" | "hide";

Defined in: types/src/index.ts:55

Why this event fired — lets the host react differently (e.g. haptics): 'show' — long-press activated the crosshair 'move' — the crosshair moved: a different candle (time) or a vertical move within the same candle (price). Fires on any positional change so price stays current for cross-chart sync; for a per-candle signal (e.g. haptics), dedupe on timeMs yourself. 'hide' — the crosshair was dismissed The library never plays haptics itself; the host decides.


timeMs

timeMs: number | null;

Defined in: types/src/index.ts:38

Bar-open time (Unix epoch ms) of the slot the crosshair snaps to, including future candle-aligned slots past the last candle. Null when inactive.