Message actions
The action row under a message — copy, regenerate, edit, and feedback.
FlowMessageActions is the muted icon row that lives under an assistant
turn. The five shipped actions come as named constructors — .copy,
.regenerate, .edit, .thumbUp, .thumbDown — each carrying its
tooltip and callback, and the default constructor takes any icon for
actions of your own. The row lays them out at the design’s rhythm and
reports the taps; what they do is entirely the host’s business.
Action row
Section titled “Action row”An action without an onPressed renders muted and disabled. The thumbs
carry a selected flag — making them exclusive is host state, not widget
behavior:
FlowMessageActions( actions: [ FlowMessageAction.copy(tooltip: 'Copy', onPressed: () {}), FlowMessageAction.regenerate(tooltip: 'Regenerate', onPressed: () {}), FlowMessageAction.edit(tooltip: 'Edit'), // no onPressed → disabled FlowMessageAction.thumbUp( tooltip: 'Good response', selected: liked, onPressed: toggleLike, ), FlowMessageAction.thumbDown( tooltip: 'Bad response', selected: disliked, onPressed: toggleDislike, ), ],)Under a message
Section titled “Under a message”FlowMessage takes the row in its footer: slot, placing it under the
content at the design’s spacing:
FlowMessage( message, footer: FlowMessageActions( actions: [ FlowMessageAction.copy(tooltip: 'Copy', onPressed: () {}), FlowMessageAction.regenerate(tooltip: 'Regenerate', onPressed: () {}), ], ),)Key API
Section titled “Key API”FlowMessageAction.copy / .regenerate / .edit / .thumbUp / .thumbDown— the shipped actions; every one takestooltip,onPressed, andselectedwhere it applies.FlowMessageAction(icon: …)— a custom action (share, retry, bookmark): youricon, an optionalselectedIcon, and the sametooltip/onPressed/selected.- No
onPressed→ the action renders muted and ignores taps. - Tooltips are host-supplied strings — the package ships no copy, so localization stays yours.