DiscoveryTip<E extends Object> class

A single feature-discovery entry. Parameterized on E — the consumer- defined event type (typically an enum) used to match triggers.

Example:

enum AppEvent { onStartupTick, onProductViewed }

DiscoveryTip<AppEvent>(
  id: 'welcome_banner',
  priority: DiscoveryPriority.standard,
  triggers: {AppEvent.onStartupTick},
  shouldShow: (ctx) async => ctx.appLaunches >= 2,
  presentation: BannerPresentation(
    title: 'Welcome back!',
    body: 'Tap the star icon to favorite a product.',
    cardColor: Colors.white,
    accentColor: Colors.indigo,
  ),
);

Constructors

DiscoveryTip({required String id, required DiscoveryPriority priority, required Set<E> triggers, required Future<bool> shouldShow(DiscoveryContext ctx), required DiscoveryPresentation presentation, int order = 100, bool oneShot = true})
const

Properties

hashCode int
The hash code for this object.
no setterinherited
id String
Stable id used by TipLedger to remember whether the tip has been seen.
final
oneShot bool
If true, the tip is skipped once ledger.hasSeen(id) is true.
final
order int
Sort key within a single priority bucket (lower = earlier).
final
presentation DiscoveryPresentation
How to render the tip when it wins.
final
priority DiscoveryPriority
Evaluation priority. See DiscoveryPriority.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
shouldShow Future<bool> Function(DiscoveryContext ctx)
Eligibility check run after the ledger and session gates pass. Return false to skip this tip for the current emit without marking it seen.
final
triggers Set<E>
Events that trigger evaluation of this tip.
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