handleAction method
Implementation
void handleAction(GuideAction action) {
final state = _orchestrator.state;
if (state == null) return;
// Guides only have Step Clicked in the matrix (no Experience Clicked), so
// the click is Digia analytics only — never forwarded to the CEP plugin.
_events().toDigia(
GuideStepClicked(
itemIndex: _currentItemIndex,
ctaLabel: action.label,
actionType: _actionTypeWire(action.type),
actionUrl: action.url,
),
state.payload,
);
switch (action.type) {
case GuideActionType.next:
_transition(forward: true);
break;
case GuideActionType.back:
case GuideActionType.prev:
_transition(forward: false);
break;
case GuideActionType.dismiss:
_view.dismiss();
break;
case GuideActionType.deepLink:
_runLink(OpenDeeplinkAction(action.url ?? ''), state);
break;
case GuideActionType.openUrl:
_runLink(OpenUrlAction(action.url ?? ''), state);
break;
case GuideActionType.fireEvent:
// Custom analytics event — not yet bridged to the Flutter event model.
break;
}
}