TutorialStep class

One step of a TutorialSequence — same fields as SpotlightOverlay (which this composes, not reimplements), minus SpotlightOverlay.onDismiss (the sequence supplies that itself, wired to advance to the next step).

Constructors

TutorialStep({required GlobalKey<State<StatefulWidget>> targetKey, required String message, String? title, String? buttonLabel, Color? color, String? id})
const

Properties

buttonLabel → String?
Defaults to 'tutorial_got_it'.tr (BUG-94) — nullable because a locale-resolved string is no longer a compile-time constant.
final
color → Color?
final
hashCode → int
The hash code for this object.
no setterinherited
id → String?
Stable id for this step, used to key its shown/dismissed AnalyticsProvider events (IDEA-35). null (the default, e.g. for a step authored the imperative way, directly in code) means "don't log analytics for this step" — the sequence never emits events an existing imperative call site didn't ask for.
final
message → String
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
targetKey → GlobalKey<State<StatefulWidget>>
final
title → String?
final

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Static Methods

listFromJson(String json, {required Map<String, GlobalKey<State<StatefulWidget>>> keyRegistry}) → List<TutorialStep>
Parses a data-driven step list (IDEA-35) — the typical caller reads this JSON from RemoteConfigService.getString('onboarding_flow_v1') (this method itself has no dependency on RemoteConfigService; it only ever sees the already-fetched JSON string, keeping this widget layer decoupled from any specific remote-config key name), so a designer can reorder/reword/A-B-test onboarding without a rebuild.