Handle dashboard events
The Dashboard component emits an event for everything that happens inside it: it finished loading, a filter
changed, the user saved, a widget rendered. Register handlers to react to one kind of event, and read state or
dispatch commands from inside them. A Dashboard component you render yourself and a dashboard plugin use the same
handler objects; only the registration call differs.
Write a handler
A DashboardEventHandler is a guard plus a callback:
| Field | Type | Purpose |
|---|---|---|
eval | (event) => boolean | Decides whether the handler runs for this event |
handler | (event, dispatch, stateSelect) => void | Runs when eval returned true |
Every event type has a type guard named isDashboard*. Use it as eval, and TypeScript narrows event inside
handler to that event’s payload.
import {
isDashboardAttributeFilterSelectionChanged,
type DashboardAttributeFilterSelectionChanged,
type DashboardEventHandler,
} from "@gooddata/sdk-ui-dashboard";
export const logFilterChanges: DashboardEventHandler<DashboardAttributeFilterSelectionChanged> = {
eval: isDashboardAttributeFilterSelectionChanged,
handler: (event) => {
const { displayForm, attributeElements } = event.payload.filter.attributeFilter;
// displayForm: ObjRef of the filter, attributeElements: the new selection
},
};
Two helpers build the common shapes for you:
singleEventTypeHandler(type, handler)matches one event type by its string, for example"GDC.DASH/EVT.FILTER_CONTEXT.CHANGED". All type strings are listed inDashboardEventType.anyDashboardEventHandler(handler)matches every built-in dashboard event, but not custom events. Use it for logging during development.
Register handlers
On the Dashboard component
Pass an array to the eventHandlers prop. The handlers are registered when the component initializes.
import { Dashboard } from "@gooddata/sdk-ui-dashboard";
export function DashboardPage({ dashboard }: { dashboard: string }) {
return <Dashboard dashboard={dashboard} eventHandlers={[logFilterChanges]} />;
}
In a plugin
The third argument of register is an IDashboardEventHandling. Use addEventHandler with a type string, or
addCustomEventHandler with a full handler object when you want a guard.
import {
DashboardPluginV1,
type DashboardContext,
type DashboardInitialized,
type IDashboardCustomizer,
type IDashboardEventHandling,
} from "@gooddata/sdk-ui-dashboard";
export class Plugin extends DashboardPluginV1 {
public register(_ctx: DashboardContext, _customize: IDashboardCustomizer, handlers: IDashboardEventHandling): void {
handlers.addEventHandler<DashboardInitialized>("GDC.DASH/EVT.INITIALIZED", (event) => {
const visualizationCount = event.payload.insights.length;
// The dashboard is loaded; event.payload also carries dashboard, config, and permissions
});
handlers.addCustomEventHandler(logFilterChanges);
}
}
To unregister, call removeEventHandler or removeCustomEventHandler with the same arguments.
Read state and dispatch from a handler
The callback receives dispatch and stateSelect as its second and third arguments. dispatch accepts any
dashboard command. stateSelect accepts the same selectors as
useDashboardSelector.
The following handler resets the Product filter whenever the Region filter changes:
import { areObjRefsEqual, attributeDisplayFormRef } from "@gooddata/sdk-model";
import {
isDashboardAttributeFilterSelectionChanged,
resetAttributeFilterSelection,
selectFilterContextAttributeFilterItemByDisplayForm,
type DashboardAttributeFilterSelectionChanged,
type DashboardEventHandler,
} from "@gooddata/sdk-ui-dashboard";
import * as Md from "./catalog.js";
const regionDisplayForm = attributeDisplayFormRef(Md.Region.Default);
const productDisplayForm = attributeDisplayFormRef(Md.Product.Name);
export const resetProductOnRegionChange: DashboardEventHandler<DashboardAttributeFilterSelectionChanged> = {
eval: isDashboardAttributeFilterSelectionChanged,
handler: (event, dispatch, stateSelect) => {
const changedDisplayForm = event.payload.filter.attributeFilter.displayForm;
if (!areObjRefsEqual(changedDisplayForm, regionDisplayForm)) {
return;
}
const productFilter = stateSelect(selectFilterContextAttributeFilterItemByDisplayForm(productDisplayForm));
if (productFilter && "attributeFilter" in productFilter && productFilter.attributeFilter.localIdentifier) {
dispatch(resetAttributeFilterSelection(productFilter.attributeFilter.localIdentifier));
}
},
};
Commands take a filter’s localIdentifier, not its display form, so read it from state first. The
"attributeFilter" in check narrows the selector’s union result to an element-based filter.
Match a command to its event
Most command factories accept a correlationId as their last argument. The events the command produces carry the
same value in event.correlationId, so a handler can tell its own commands apart from user actions.
import {
changeAttributeFilterSelection,
isDashboardAttributeFilterSelectionChanged,
type DashboardAttributeFilterSelectionChanged,
type DashboardEventHandler,
} from "@gooddata/sdk-ui-dashboard";
const PLUGIN_CORRELATION = "my-plugin/preset";
export function applyPreset(dispatch: (command: unknown) => void, filterLocalId: string): void {
dispatch(changeAttributeFilterSelection(filterLocalId, { values: ["East"] }, "IN", PLUGIN_CORRELATION));
}
export const onUserFilterChange: DashboardEventHandler<DashboardAttributeFilterSelectionChanged> = {
eval: isDashboardAttributeFilterSelectionChanged,
handler: (event) => {
if (event.correlationId === PLUGIN_CORRELATION) {
return; // our own change, ignore
}
// the user changed the filter
},
};
Custom events
Plugins can emit their own events. They are ICustomDashboardEvent objects with a type string of your choosing
and an optional payload. Register a handler for them the same way, with isCustomDashboardEvent as the guard
and a check on type. To emit one from a component, dispatch the @beta triggerEvent command with
useDispatchDashboardCommand; see useDashboardEventDispatch.
import { isCustomDashboardEvent, type DashboardEventHandler, type ICustomDashboardEvent } from "@gooddata/sdk-ui-dashboard";
type RowSelected = ICustomDashboardEvent<{ rowId: string }>;
export const onRowSelected: DashboardEventHandler<RowSelected> = {
eval: (event) => isCustomDashboardEvent(event) && event.type === "myPlugin.rowSelected",
handler: (event) => {
const rowId = event.payload?.rowId;
},
};
Commonly used events
| Guard | Event type | Payload |
|---|---|---|
isDashboardInitialized | GDC.DASH/EVT.INITIALIZED | dashboard, insights, config, permissions |
isDashboardFilterContextChanged | GDC.DASH/EVT.FILTER_CONTEXT.CHANGED | filterContext with every dashboard filter after the change, attributeFilterConfigs |
isDashboardAttributeFilterSelectionChanged | GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.SELECTION_CHANGED | filter, the changed IDashboardAttributeFilter |
isDashboardDateFilterSelectionChanged | GDC.DASH/EVT.FILTER_CONTEXT.DATE_FILTER.SELECTION_CHANGED | filter, the new IDashboardDateFilter (undefined for All time), and dateFilterOptionLocalId |
isDashboardSaved | GDC.DASH/EVT.SAVED | dashboard, the saved IDashboard, and newDashboard |
isDashboardRenderResolved | GDC.DASH/EVT.RENDER.RESOLVED | optional config of the rendering worker; every widget has rendered, including asynchronous ones |
isDashboardFilterContextChanged fires once per change of any filter and carries the whole filter context. Use it
when you need the complete state; use the per-filter events when you only care about one filter.
All events
Every published built-in event, sorted by event type so the events of one area sit together. The list is
generated from the SDK with each build. The DashboardEvents
union in the API reference is the same set as a type, plus the @alpha events this page leaves out.
| Event | Type guard | Description |
|---|---|---|
IDashboardAlertCreated BetaGDC.DASH/EVT.ALERT.CREATED | isDashboardAlertCreated() | This event is emitted after the alert is successfully saved. |
IDashboardAlertSaved BetaGDC.DASH/EVT.ALERT.SAVED | isDashboardAlertSaved() | This event is emitted after the alert is saved. |
IDashboardAutomationsRefreshed BetaGDC.DASH/EVT.AUTOMATIONS.REFRESHED | isDashboardAutomationsRefreshed() | This event is emitted after the automations are refreshed (after creating, updating, or removing alerts or scheduled exports). |
IDashboardCommandFailed BetaGDC.DASH/EVT.COMMAND.FAILED | isDashboardCommandFailed() | This event is emitted if a particular command processing fails. |
IDashboardCommandRejected BetaGDC.DASH/EVT.COMMAND.REJECTED | isDashboardCommandRejected() | This event is emitted when the submitted command has been rejected by the dashboard component because it does not know how to handle the command. |
IDashboardCommandStarted BetaGDC.DASH/EVT.COMMAND.STARTED | isDashboardCommandStarted() | This event is emitted when a particular command processing starts. |
DashboardCopySavedGDC.DASH/EVT.COPY_SAVED | isDashboardCopySaved() | This event is emitted at the end of successful ‘dashboard save as’ command processing. |
IDashboardDefinitionChanged AlphaGDC.DASH/EVT.DEFINITION_CHANGED | isDashboardDefinitionChanged() | This event is emitted at the end of successful ‘change dashboard definition’ command processing. |
DashboardDeinitializedGDC.DASH/EVT.DEINITIALIZED | isDashboardDeinitialized() | This event is emitted when a dashboard is deinitialized. |
IDashboardDrillDownRequested AlphaGDC.DASH/EVT.DRILL.DRILL_DOWN.REQUESTED | isDashboardDrillDownRequested() | This event is emitted on start of the resolution of the IDrillDown command. |
IDashboardDrillDownResolved AlphaGDC.DASH/EVT.DRILL.DRILL_DOWN.RESOLVED | isDashboardDrillDownResolved() | This event is emitted as a result of the IDrillDown command. |
IDashboardDrillToAttributeUrlRequested AlphaGDC.DASH/EVT.DRILL.DRILL_TO_ATTRIBUTE_URL.REQUESTED | isDashboardDrillToAttributeUrlRequested() | This event is emitted on start of the resolution of the IDrillToAttributeUrl command. |
IDashboardDrillToAttributeUrlResolved AlphaGDC.DASH/EVT.DRILL.DRILL_TO_ATTRIBUTE_URL.RESOLVED | isDashboardDrillToAttributeUrlResolved() | This event is emitted as a result of the IDrillToAttributeUrl command. |
IDashboardDrillToCustomUrlRequested AlphaGDC.DASH/EVT.DRILL.DRILL_TO_CUSTOM_URL.REQUESTED | isDashboardDrillToCustomUrlRequested() | This event is emitted on start of the resolution of the IDrillToCustomUrl command. |
IDashboardDrillToCustomUrlResolved AlphaGDC.DASH/EVT.DRILL.DRILL_TO_CUSTOM_URL.RESOLVED | isDashboardDrillToCustomUrlResolved() | This event is emitted as a result of the IDrillToCustomUrl command. |
IDashboardDrillToDashboardRequested AlphaGDC.DASH/EVT.DRILL.DRILL_TO_DASHBOARD.REQUESTED | isDashboardDrillToDashboardRequested() | This event is emitted on start of the resolution of the IDrillToDashboard command. |
IDashboardDrillToDashboardResolved AlphaGDC.DASH/EVT.DRILL.DRILL_TO_DASHBOARD.RESOLVED | isDashboardDrillToDashboardResolved() | This event is emitted as a result of the IDrillToDashboard command. |
IDashboardDrillToInsightRequested AlphaGDC.DASH/EVT.DRILL.DRILL_TO_INSIGHT.REQUESTED | isDashboardDrillToInsightRequested() | This event is emitted on start of the resolution of the IDrillToInsight command. |
IDashboardDrillToInsightResolved AlphaGDC.DASH/EVT.DRILL.DRILL_TO_INSIGHT.RESOLVED | isDashboardDrillToInsightResolved() | This event is emitted as a result of the IDrillToInsight command. |
IDashboardDrillToLegacyDashboardRequested AlphaGDC.DASH/EVT.DRILL.DRILL_TO_LEGACY_DASHBOARD.REQUESTED | isDashboardDrillToLegacyDashboardRequested() | This event is emitted on start of the resolution of the IDrillToLegacyDashboard command. |
IDashboardDrillToLegacyDashboardResolved AlphaGDC.DASH/EVT.DRILL.DRILL_TO_LEGACY_DASHBOARD.RESOLVED | isDashboardDrillToLegacyDashboardResolved() | This event is emitted as a result of the IDrillToLegacyDashboard command. |
IDashboardDrillableItemsChanged AlphaGDC.DASH/EVT.DRILL.DRILLABLE_ITEMS.CHANGED | isDashboardDrillableItemsChanged() | This event is emitted as a result of the IChangeDrillableItems command, if drillable items was successfully changed. |
IDashboardKeyDriverAnalysisRequested BetaGDC.DASH/EVT.DRILL.KEY_DRIVER_ANALYSIS.REQUESTED | isDashboardKeyDriverAnalysisRequested() | This event is emitted on start of the resolution of the IKeyDriverAnalysis command. |
IDashboardKeyDriverAnalysisResolved BetaGDC.DASH/EVT.DRILL.KEY_DRIVER_ANALYSIS.RESOLVED | isDashboardKeyDriverAnalysisResolved() | This event is emitted as a result of the IKeyDriverAnalysis command. |
IDashboardDrillRequested AlphaGDC.DASH/EVT.DRILL.REQUESTED | isDashboardDrillRequested() | This event is emitted on start of the resolution of the IDrill command. |
IDashboardDrillResolved AlphaGDC.DASH/EVT.DRILL.RESOLVED | isDashboardDrillResolved() | A general drill event that is emitted each time any dashboard drill is resolved. |
IDashboardExportToExcelRequested BetaGDC.DASH/EVT.EXPORT.EXCEL.REQUESTED | isDashboardExportToExcelRequested() | This event is emitted at the start of the ‘dashboard export to Excel’ command processing. |
IDashboardExportToExcelResolved BetaGDC.DASH/EVT.EXPORT.EXCEL.RESOLVED | isDashboardExportToExcelResolved() | This event is emitted at the end of successful ‘dashboard export to Excel’ command processing. |
IDashboardExportToImageRequested BetaGDC.DASH/EVT.EXPORT.IMAGE.REQUESTED | isDashboardExportToImageRequested() | This event is emitted at the start of the ‘dashboard export to image’ command processing. |
IDashboardExportToImageResolved BetaGDC.DASH/EVT.EXPORT.IMAGE.RESOLVED | isDashboardExportToImageResolved() | This event is emitted at the end of successful ‘dashboard export to image’ command processing. |
IDashboardExportToPdfPresentationRequested BetaGDC.DASH/EVT.EXPORT.PDF_PRESENTATION.REQUESTED | isDashboardExportToPdfPresentationRequested() | This event is emitted at the start of the ‘dashboard export to PDF presentation’ command processing. |
IDashboardExportToPdfPresentationResolved BetaGDC.DASH/EVT.EXPORT.PDF_PRESENTATION.RESOLVED | isDashboardExportToPdfPresentationResolved() | This event is emitted at the end of successful ‘dashboard export to PDF presentation’ command processing. |
IDashboardExportToPdfRequested BetaGDC.DASH/EVT.EXPORT.PDF.REQUESTED | isDashboardExportToPdfRequested() | This event is emitted at the start of the ‘dashboard export to PDF’ command processing. |
IDashboardExportToPdfResolved BetaGDC.DASH/EVT.EXPORT.PDF.RESOLVED | isDashboardExportToPdfResolved() | This event is emitted at the end of successful ‘dashboard export to PDF’ command processing. |
IDashboardExportToPptPresentationRequested BetaGDC.DASH/EVT.EXPORT.PPT_PRESENTATION.REQUESTED | isDashboardExportToPptPresentationRequested() | This event is emitted at the start of the ‘dashboard export to PPT presentation’ command processing. |
IDashboardExportToPptPresentationResolved BetaGDC.DASH/EVT.EXPORT.PPT_PRESENTATION.RESOLVED | isDashboardExportToPptPresentationResolved() | This event is emitted at the end of successful ‘dashboard export to PPT presentation’ command processing. |
DashboardAttributeFilterItemSelectionReplacedGDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER_ITEM.SELECTION_REPLACED | isDashboardAttributeFilterItemSelectionReplaced() | This event is emitted after an attribute filter item’s selection is replaced. |
IDashboardAttributeFilterAdded BetaGDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.ADDED | isDashboardAttributeFilterAdded() | This event is emitted after a new dashboard attribute filter is successfully added into dashboard’s filters. |
IDashboardAttributeFilterMoved BetaGDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.MOVED | isDashboardAttributeFilterMoved() | This event is emitted after a dashboard attribute filter is moved from one position in the filter bar to a new position |
IDashboardAttributeFilterParentChanged BetaGDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.PARENT_CHANGED | isDashboardAttributeFilterParentChanged() | This event is emitted after the parent relationships of a filter change. |
IDashboardAttributeFilterRemoved BetaGDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.REMOVED | isDashboardAttributeFilterRemoved() | This event is emitted after a dashboard attribute filter is successfully removed. |
DashboardAttributeFilterSelectionChangedGDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.SELECTION_CHANGED | isDashboardAttributeFilterSelectionChanged() | This event is emitted after new elements are selected and applied in an attribute filter. |
IDashboardAttributeSelectionModeChanged BetaGDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.SELECTION_MODE_CHANGED | isDashboardAttributeFilterSelectionModeChanged() | This event is emitted when the attribute filter selection mode is change. |
IDashboardAttributeTitleChanged BetaGDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.TITLE_CHANGED | isDashboardAttributeFilterTitleChanged() | This event is emitted when the attribute filter title change. |
DashboardFilterContextChangedGDC.DASH/EVT.FILTER_CONTEXT.CHANGED | isDashboardFilterContextChanged() | This event is emitted after any change to dashboard filters (be it date or attribute filter). |
DashboardDateFilterSelectionChangedGDC.DASH/EVT.FILTER_CONTEXT.DATE_FILTER.SELECTION_CHANGED | isDashboardDateFilterSelectionChanged() | This event is emitted after the dashboard’s date filter selection is changed. |
DateFilterValidationFailedGDC.DASH/EVT.FILTER_CONTEXT.DATE_FILTER.VALIDATION.FAILED | isDateFilterValidationFailed() | This event may occur while the dashboard is handling the Load Dashboard command and is loading and validating dashboard configuration from the backend. |
IDashboardMeasureValueFilterAdded AlphaGDC.DASH/EVT.FILTER_CONTEXT.MEASURE_VALUE_FILTER.ADDED | isDashboardMeasureValueFilterAdded() | This event is emitted after a new dashboard measure value filter is successfully added. |
IDashboardMeasureValueFilterConditionChanged AlphaGDC.DASH/EVT.FILTER_CONTEXT.MEASURE_VALUE_FILTER.CONDITION_CHANGED | isDashboardMeasureValueFilterConditionChanged() | This event is emitted after the conditions of a dashboard measure value filter have been changed. |
IDashboardMeasureValueFilterDimensionalityChanged AlphaGDC.DASH/EVT.FILTER_CONTEXT.MEASURE_VALUE_FILTER.DIMENSIONALITY_CHANGED | isDashboardMeasureValueFilterDimensionalityChanged() | This event is emitted after the dashboard-level dimensionality of a measure value filter changes. |
IDashboardMeasureValueFilterMoved AlphaGDC.DASH/EVT.FILTER_CONTEXT.MEASURE_VALUE_FILTER.MOVED | isDashboardMeasureValueFilterMoved() | This event is emitted after a dashboard measure value filter is moved. |
IDashboardMeasureValueFilterRemoved AlphaGDC.DASH/EVT.FILTER_CONTEXT.MEASURE_VALUE_FILTER.REMOVED | isDashboardMeasureValueFilterRemoved() | This event is emitted after a dashboard measure value filter is removed. |
IDashboardMeasureValueFilterTitleChanged AlphaGDC.DASH/EVT.FILTER_CONTEXT.MEASURE_VALUE_FILTER.TITLE_CHANGED | isDashboardMeasureValueFilterTitleChanged() | This event is emitted when the measure value filter title changes. |
IDashboardLayoutSectionItemMoved BetaGDC.DASH/EVT.FLUID_LAYOUT.ITEM_MOVED | isDashboardLayoutSectionItemMoved() | This event is emitted when a dashboard item is moved between sections or within a section. |
IDashboardLayoutSectionItemMovedToNewSection BetaGDC.DASH/EVT.FLUID_LAYOUT.ITEM_MOVED_TO_NEW_SECTION | isDashboardLayoutSectionItemMovedToNewSection() | This event is emitted when a dashboard item is moved to new section. |
IDashboardLayoutSectionItemRemoved BetaGDC.DASH/EVT.FLUID_LAYOUT.ITEM_REMOVED | isDashboardLayoutSectionItemRemoved() | This event is emitted when an item is removed from dashboard layout section. |
IDashboardLayoutSectionItemReplaced BetaGDC.DASH/EVT.FLUID_LAYOUT.ITEM_REPLACED | isDashboardLayoutSectionItemReplaced() | This event is emitted when an item in a dashboard section is replaced. |
IDashboardLayoutSectionItemsAdded BetaGDC.DASH/EVT.FLUID_LAYOUT.ITEMS_ADDED | isDashboardLayoutSectionItemsAdded() | This event is emitted when items are added to a dashboard section. |
IDashboardLayoutChanged BetaGDC.DASH/EVT.FLUID_LAYOUT.LAYOUT_CHANGED | isDashboardLayoutChanged() | This event is emitted after any change to the dashboard layout and will include the entire new layout. |
IDashboardLayoutSectionAdded BetaGDC.DASH/EVT.FLUID_LAYOUT.SECTION_ADDED | isDashboardLayoutSectionAdded() | This event is emitted when a new dashboard layout section is added. |
IDashboardLayoutSectionHeaderChanged BetaGDC.DASH/EVT.FLUID_LAYOUT.SECTION_HEADER_CHANGED | isDashboardLayoutSectionHeaderChanged() | This event is emitted when dashboard layout section changes. |
IDashboardLayoutSectionMoved BetaGDC.DASH/EVT.FLUID_LAYOUT.SECTION_MOVED | isDashboardLayoutSectionMoved() | This event is emitted when a dashboard layout section is moved from one place to another. |
IDashboardLayoutSectionRemoved BetaGDC.DASH/EVT.FLUID_LAYOUT.SECTION_REMOVED | isDashboardLayoutSectionRemoved() | This event is emitted when a dashboard layout section is removed from the layout. |
IDashboardIgnoreExecutionTimestampChanged AlphaGDC.DASH/EVT.IGNORE_EXECUTION_TIMESTAMP_CHANGED | isDashboardIgnoreExecutionTimestampChanged() | This event is emitted at the end of successful ‘change ignore execution timestamp’ command processing. |
DashboardInitializedGDC.DASH/EVT.INITIALIZED | isDashboardInitialized() | This event is emitted when a dashboard is successfully initialized. |
IDashboardInsightWidgetVisConfigurationChanged BetaGDC.DASH/EVT.INSIGHT_WIDGET.CONFIGURATION_CHANGED | isDashboardInsightWidgetVisConfigurationChanged() | This event is emitted when the insight widget’s visualization configuration change. |
IDashboardInsightWidgetDescriptionChanged BetaGDC.DASH/EVT.INSIGHT_WIDGET.DESCRIPTION_CHANGED | isDashboardInsightWidgetDescriptionChanged() | This event is emitted when the description of an insight widget changed. |
IDashboardInsightWidgetDrillsModified BetaGDC.DASH/EVT.INSIGHT_WIDGET.DRILLS_MODIFIED | isDashboardInsightWidgetDrillsModified() | This event is emitted when the insight widget’s drill definitions change. |
IDashboardInsightWidgetDrillsRemoved BetaGDC.DASH/EVT.INSIGHT_WIDGET.DRILLS_REMOVED | isDashboardInsightWidgetDrillsRemoved() | This event is emitted when the insight widget’s drill definitions are removed. |
IDashboardInsightWidgetExportRequested BetaGDC.DASH/EVT.INSIGHT_WIDGET.EXPORT_REQUESTED | isDashboardInsightWidgetExportRequested() | This event is emitted after export of an insight widget is requested. |
IDashboardInsightWidgetExportResolved BetaGDC.DASH/EVT.INSIGHT_WIDGET.EXPORT_RESOLVED | isDashboardInsightWidgetExportResolved() | This event is emitted after export of an insight widget is resolved. |
IDashboardInsightWidgetFilterSettingsChanged BetaGDC.DASH/EVT.INSIGHT_WIDGET.FILTER_SETTINGS_CHANGED | isDashboardInsightWidgetFilterSettingsChanged() | This event is emitted when the insight widget’s filter settings change. |
IDashboardInsightWidgetHeaderChanged BetaGDC.DASH/EVT.INSIGHT_WIDGET.HEADER_CHANGED | isDashboardInsightWidgetHeaderChanged() | This event is emitted when the header of an insight widget changed. |
IDashboardInsightWidgetInsightSwitched BetaGDC.DASH/EVT.INSIGHT_WIDGET.INSIGHT_SWITCHED | isDashboardInsightWidgetInsightSwitched() | This event is emitted when the insight rendered inside an insight widget gets switched for another one. |
IDashboardInsightWidgetVisPropertiesChanged BetaGDC.DASH/EVT.INSIGHT_WIDGET.PROPERTIES_CHANGED | isDashboardInsightWidgetVisPropertiesChanged() | This event is emitted when the insight widget’s visualization properties change. |
IDashboardInsightWidgetRefreshed BetaGDC.DASH/EVT.INSIGHT_WIDGET.REFRESHED | isDashboardInsightWidgetRefreshed() | This event is emitted after an insight widget is refreshed. |
IDashboardInsightWidgetChanged BetaGDC.DASH/EVT.INSIGHT_WIDGET.WIDGET_CHANGED | isDashboardInsightWidgetChanged() | This event is emitted after any change to Insight Widget configuration. |
IDashboardInsightDeleted AlphaGDC.DASH/EVT.INSIGHT.DELETED | isDashboardInsightDeleted() | This event is emitted after the insight (visualization) was deleted from the workspace. |
IDashboardKpiWidgetComparisonChanged BetaGDC.DASH/EVT.KPI_WIDGET.COMPARISON_CHANGED | isDashboardKpiWidgetComparisonChanged() | This event is emitted when dashboard’s KPI Widget has its comparison type changed. |
IDashboardKpiWidgetConfigurationChanged BetaGDC.DASH/EVT.KPI_WIDGET.CONFIGURATION_CHANGED | isDashboardKpiWidgetConfigurationChanged() | This event is emitted when the dashboard’s KPI Widget configuration is modified. |
IDashboardKpiWidgetDescriptionChanged BetaGDC.DASH/EVT.KPI_WIDGET.DESCRIPTION_CHANGED | isDashboardKpiWidgetDescriptionChanged() | This event is emitted when the dashboard’s KPI Widget description is modified. |
IDashboardKpiWidgetDrillRemoved BetaGDC.DASH/EVT.KPI_WIDGET.DRILL_REMOVED | isDashboardKpiWidgetDrillRemoved() | This event is emitted when dashboard’s KPI Widget has its drills removed. |
IDashboardKpiWidgetDrillSet BetaGDC.DASH/EVT.KPI_WIDGET.DRILL_SET | isDashboardKpiWidgetDrillSet() | This event is emitted when dashboard’s KPI Widget has its drill set. |
IDashboardKpiWidgetFilterSettingsChanged BetaGDC.DASH/EVT.KPI_WIDGET.FILTER_SETTINGS_CHANGED | isDashboardKpiWidgetFilterSettingsChanged() | This event is emitted when dashboard’s KPI Widget filter settings are modified. |
IDashboardKpiWidgetHeaderChanged BetaGDC.DASH/EVT.KPI_WIDGET.HEADER_CHANGED | isDashboardKpiWidgetHeaderChanged() | This event is emitted when the dashboard’s KPI Widget header is modified. |
IDashboardKpiWidgetMeasureChanged BetaGDC.DASH/EVT.KPI_WIDGET.MEASURE_CHANGED | isDashboardKpiWidgetMeasureChanged() | This event is emitted when the dashboard’s KPI Widget measure is modified - the KPI now shows value for different measure. |
IDashboardKpiWidgetChanged BetaGDC.DASH/EVT.KPI_WIDGET.WIDGET_CHANGED | isDashboardKpiWidgetChanged() | This event is emitted after any change to KPI Widget configuration. |
IDashboardMeasureValueFilterConfigModeChanged AlphaGDC.DASH/EVT.MEASURE_VALUE_FILTER_CONFIG.MODE_CHANGED | isDashboardMeasureValueFilterConfigModeChanged() | This event is emitted when the measure value filter mode changes. |
IDashboardParametersChanged AlphaGDC.DASH/EVT.PARAMETERS.CHANGED | isDashboardParametersChanged() | This event is emitted after dashboard parameter runtime values have changed on a tab. |
IDashboardParametersSelectionReset AlphaGDC.DASH/EVT.PARAMETERS.SELECTION.RESET | isDashboardParametersSelectionReset() | This event is emitted after dashboard parameter runtime values have been reset on the active tab. |
IDashboardQueryCompleted BetaGDC.DASH/EVT.QUERY.COMPLETED | isDashboardQueryCompleted() | This event is emitted when query processing completes with success. |
IDashboardQueryFailed BetaGDC.DASH/EVT.QUERY.FAILED | isDashboardQueryFailed() | This event is emitted if a particular query processing fails. |
IDashboardQueryRejected BetaGDC.DASH/EVT.QUERY.REJECTED | isDashboardQueryRejected() | This event is emitted when the submitted query has been rejected by the dashboard component because it does not know how to handle the query. |
IDashboardQueryStarted BetaGDC.DASH/EVT.QUERY.STARTED | isDashboardQueryStarted() | This event is emitted when query processing starts. |
IDashboardRenamed BetaGDC.DASH/EVT.RENAMED | isDashboardRenamed() | This event is emitted at the end of successful ‘dashboard rename’ command processing. |
IDashboardRenderModeChanged BetaGDC.DASH/EVT.RENDER_MODE.CHANGED | isDashboardRenderModeChanged() | This event is emitted after render mode change. |
DashboardAsyncRenderRequestedGDC.DASH/EVT.RENDER.ASYNC.REQUESTED | isDashboardAsyncRenderRequested() | This event is emitted when a component on the dashboard requests async rendering. |
DashboardAsyncRenderResolvedGDC.DASH/EVT.RENDER.ASYNC.RESOLVED | isDashboardAsyncRenderResolved() | This event is emitted when a component on the dashboard resolves async rendering. |
DashboardRenderRequestedGDC.DASH/EVT.RENDER.REQUESTED | isDashboardRenderRequested() | This event is emitted as soon as the dashboard component is mounted, and rendering of its content started. |
DashboardRenderResolvedGDC.DASH/EVT.RENDER.RESOLVED | isDashboardRenderResolved() | — |
IDashboardWasReset BetaGDC.DASH/EVT.RESET | isDashboardWasReset() | This event is emitted at the end of successful ‘dashboard reset’ command processing. |
IDashboardRichTextWidgetContentChanged BetaGDC.DASH/EVT.RICH_TEXT_WIDGET.CONTENT_CHANGED | isDashboardRichTextWidgetContentChanged() | This event is emitted when the dashboard’s rich text widget content is changed. |
IDashboardRichTextWidgetFilterSettingsChanged BetaGDC.DASH/EVT.RICH_TEXT_WIDGET.FILTER_SETTINGS_CHANGED | isDashboardRichTextWidgetFilterSettingsChanged() | This event is emitted when the RichText widget’s filter settings change. |
DashboardSavedGDC.DASH/EVT.SAVED | isDashboardSaved() | This event is emitted at the end of successful dashboard save command processing. |
IDashboardScheduledEmailCreated BetaGDC.DASH/EVT.SCHEDULED_EMAIL.CREATED | isDashboardScheduledEmailCreated() | This event is emitted after the scheduled email is successfully created. |
IDashboardScheduledEmailSaved BetaGDC.DASH/EVT.SCHEDULED_EMAIL.SAVED | isDashboardScheduledEmailSaved() | This event is emitted after the scheduled email is successfully saved. |
DashboardSharingChangedGDC.DASH/EVT.SHARING.CHANGED | isDashboardSharingChanged() | This event is emitted at the end of successful ‘change sharing status of dashboard’ command processing. |
IShowWidgetAsTableSet BetaGDC.DASH/EVT.SHOW_WIDGET_AS_TABLE.SET | isShowWidgetAsTableSet() | This event is emitted after a widget’s show as table state has been set. |
IDashboardTabCreated AlphaGDC.DASH/EVT.TAB.CREATED | isDashboardTabCreated() | This event is emitted when a dashboard tab is created. |
IDashboardTabDeleted AlphaGDC.DASH/EVT.TAB.DELETED | isDashboardTabDeleted() | This event is emitted when a dashboard tab is deleted. |
IDashboardTabRenamingCanceled AlphaGDC.DASH/EVT.TAB.RENAME_MODE.CANCELED | isDashboardTabRenamingCanceled() | This event is emitted when renaming mode is canceled for a dashboard tab. |
IDashboardTabRenamingStarted AlphaGDC.DASH/EVT.TAB.RENAME_MODE.STARTED | isDashboardTabRenamingStarted() | This event is emitted when renaming mode is started for a dashboard tab. |
IDashboardTabRenamed AlphaGDC.DASH/EVT.TAB.RENAMED | isDashboardTabRenamed() | This event is emitted when a dashboard tab is renamed. |
IDashboardTabSwitched AlphaGDC.DASH/EVT.TAB.SWITCHED | isDashboardTabSwitched() | This event is emitted when the active dashboard tab is switched. |
IDashboardTimezoneOverrideChanged AlphaGDC.DASH/EVT.TIMEZONE_OVERRIDE.CHANGED | isDashboardTimezoneOverrideChanged() | This event is emitted after the session-only ad-hoc timezone override of the dashboard changes. |
IDashboardUserInteractionTriggered BetaGDC.DASH/EVT.USER_INTERACTION.TRIGGERED | isDashboardUserInteractionTriggered() | This event is emitted after the user interaction that cannot be tracked by other existing events is triggered. |
IDashboardVisualizationSwitcherWidgetActiveVisualizationChanged BetaGDC.DASH/EVT.VISUALIZATION_SWITCHER_WIDGET.ACTIVE_VISUALIZATION_CHANGED | isDashboardVisualizationSwitcherWidgetActiveVisualizationChanged() | This event is emitted when the dashboard’s visualization switcher active visualization is changed. |
IDashboardVisualizationSwitcherWidgetVisualizationAdded BetaGDC.DASH/EVT.VISUALIZATION_SWITCHER_WIDGET.VISUALIZATION_ADDED | isDashboardVisualizationSwitcherWidgetVisualizationAdded() | This event is emitted when the new visualization is added to the dashboard’s visualization switcher widget. |
IDashboardVisualizationSwitcherWidgetVisualizationsUpdated BetaGDC.DASH/EVT.VISUALIZATION_SWITCHER_WIDGET.VISUALIZATIONS_UPDATED | isDashboardVisualizationSwitcherWidgetVisualizationsUpdated() | This event is emitted when the dashboard’s visualization switcher visualizations is updated. |
IDashboardWidgetExecutionFailed BetaGDC.DASH/EVT.WIDGET.EXECUTION_FAILED | isDashboardWidgetExecutionFailed() | This event is emitted after execution of an insight widget fails. |
IDashboardWidgetExecutionStarted BetaGDC.DASH/EVT.WIDGET.EXECUTION_STARTED | isDashboardWidgetExecutionStarted() | This event is emitted after execution of an insight widget starts. |
IDashboardWidgetExecutionSucceeded BetaGDC.DASH/EVT.WIDGET.EXECUTION_SUCCEEDED | isDashboardWidgetExecutionSucceeded() | This event is emitted after execution of an insight widget succeeds. |
Notes
- Handlers only see events emitted after registration. Handlers from
eventHandlers, a plugin’sregister, and theonEventingInitializedcallback are in place beforeGDC.DASH/EVT.INITIALIZED. Handlers you add later, for example by keeping theregisterEventHandlerfunction thatonEventingInitializedreceives and calling it after the dashboard has loaded, miss it; read the current state withstateSelectinstead. - Keep handlers cheap. Every matching event calls them, and a dashboard with many widgets emits many events while it loads.
- Command lifecycle guards (
isDashboardCommandFailed,isDashboardWidgetExecutionFailed) are@beta. Check the maturity badge before you depend on one; see API maturity. - To dispatch commands from a component instead of a handler, use the
useDispatchDashboardCommandhook; see Dashboard component.
Related
Embed a saved dashboard with Dashboard, read its state through selectors, dispatch commands, handle events, configure behavior, and access its store externally.
Dispatch built-in or custom dashboard events from a plugin component with the alpha useDashboardEventDispatch hook.
Read Dashboard component state with useDashboardSelector and the select* selectors, from components, event handlers, and outside code.
Implement the dashboard plugin lifecycle, customize visualizations, widgets, layouts, filters, and exports, and register dashboard event handlers.
Scaffold a dashboard plugin, run it against a live dashboard, then build, host, register, and link it.