VoicebotLauncher class final

Turnkey, all-in-one VoiceBot UI. Drop it once near the app root and it floats a VoiceButton over every screen, manages the ChatPanel (open/minimize/close), and owns the full client/session lifecycle.

VoicebotLauncher(
  client: VoicebotClient.init(baseUrl: '…', tokenProvider: …),
  onClientReady: (c) => c.registerToolHandler('add_to_cart', myHandler),
)

Lifecycle (HANDOFF §4): tapping the button opens a session and the panel; the panel's minimize collapses to the button while the session stays alive (no end); the panel's close (X) calls endSession() for a real teardown.

The button + panel float above all routes via an OverlayEntry inserted into the nearest root Overlay. For custom layouts, use VoiceButton and ChatPanel directly instead.

Inheritance

Constructors

VoicebotLauncher({required VoicebotClient client, SessionConfig config = const SessionConfig(), VoicebotTheme? theme, void onClientReady(VoicebotClient client)?, void onSessionStarted(VoicebotSession session)?, bool disposeClientOnUnmount = true, Widget? child, Key? key})
const

Properties

child Widget?
Optional subtree to render beneath the floating UI. When provided, this widget paints child and overlays the launcher above it; when null it renders nothing of its own (it only manages the overlay) — drop it inside a tree that already has a Navigator/Overlay.
final
client VoicebotClient
The configured client. Handlers/deep-links can be registered here, on onClientReady, or before passing it in.
final
config SessionConfig
Session tuning used when the assistant is opened (voice vs text, lang, …).
final
disposeClientOnUnmount bool
Tear down the client (and any session) when this widget unmounts. Set false if you own the client elsewhere and reuse it.
final
hashCode int
The hash code for this object.
no setterinherited
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
onClientReady → void Function(VoicebotClient client)?
Called once after mount with the client — a convenient spot to register tool handlers / deep-link maps.
final
onSessionStarted → void Function(VoicebotSession session)?
Called each time a new VoicebotSession is opened (e.g. to wire updateContext / sendCartEvent to your navigation/cart).
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
theme VoicebotTheme?
Theme for the floating button + panel; falls back to VoicebotThemeProvider then defaults.
final

Methods

createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() State<VoicebotLauncher>
Creates the mutable state for this widget at a given location in the tree.
override
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object.
inherited
toStringShort() String
A short, textual description of this widget.
inherited

Operators

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