handleAction method

void handleAction(
  1. GuideAction action
)

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;
  }
}