This page documents
@whop/elements@1.9.0 and @whop/elements-react@1.9.0.v1.0.0.
Mounts inside Reporting, in Ads. Pass props and callbacks through the create options or React props.
Example data. Open the Playground.
Props
string
What the chart plots —
spend, impressions, clicks, or a conversion. The picker moves it; set it to open on something else. For conversions, conversion_value and cost_per_conversion, name the conversion in metricEvent. Defaults to "spend".One of "funnel", "spend", "impressions", "clicks", "cost_per_1k_impressions", "cost_per_click", "conversions", "conversion_value", or "cost_per_conversion".string
The conversion
metric refers to when it is a per-conversion one — payment.completed, pixel.lead, or a custom event the account names itself. Ignored by every other metric. Defaults to "".Events
Pass callbacks in the create options or React props.onMetricChanged
The viewer picked a different result to plot. metric is what is being plotted; event names the conversion it refers to, and is present only for conversions, conversion_value and cost_per_conversion — the account decides what those are called, so it is a string rather than a member. Mirror it into your own URL and hand it back as metric/metricEvent if you want the choice to survive a reload; the element holds it for the life of the mount either way.
object
onTimezoneChanged
The viewer switched which zone the figures are reported in: the choice they made AND the IANA zone it resolves to. The choice is the half that survives a reload — persist it and pass it back as timezone, which is what the Whop dashboard does with its own copy; the element holds it for the life of the mount either way. resolved comes along so a host can label its own figures without repeating the account-preference lookup, and is the viewer’s own zone whenever the account has set none.
object
onPeriodChanged
The viewer moved the reporting window: the period they picked AND the window it resolves to, as ISO 8601 instants. The dates come resolved because a period name alone would leave you redoing the day-boundary and account-timezone arithmetic to act on it; the period comes too because only it survives a reload as a ROLLING window — stored dates would pin it. Every surface under the same handle has already followed the move.
object
onLoaderStart
Runs after the loading skeleton first paints and before onReady.
onReady
Runs after the element’s first complete paint.
onError
Runs when the element fails to load or crashes. The fallback remains visible. Use code for programmatic handling. sourceKey identifies a failed host-state source.
object
Methods
Call these on the handle returned bycreate, or through a React ref.
mount
Mounts the element in target and starts loading. React components mount themselves.
Parameters
string | HTMLElement
required
destroy
Removes the element and releases its frame and subscriptions. You can call it more than once. React removes the element automatically.
update
Merges new props into the mounted element. In React, change the component props instead.
Parameters
Partial<ChartElementProps>
required
Styling
This element doesn’t expose class names for styling. Useappearance (theme, accent color, variables) to restyle it.
