RichAction.requestInput constructor

  1. @FreezedUnionValue.new('request_input')
const RichAction.requestInput({
  1. @JsonKey.new(name: 'input_type') required String inputType,
  2. required String label,
  3. @Default.new('both') String source,
  4. @Default.new('primary') String style,
})

Action that asks the user to share a specific kind of input (photo, audio, …) to continue. The SDK renders a tappable chip below the message and pulses the input-bar attach button — so the user has both a one-tap affordance and a visual nudge to the existing upload button.

inputType is intentionally a free string ("image" / "audio" / "video" / "location" / …) so older SDK builds running on tenant sites can fall back to a label-only chip when the backend ships a new input mode.

source is an optional picker hint: "camera" | "gallery" | "both" (default). The default callback in RichContentActionHandler honours this when opening the SDK's existing picker; host apps can override via RichContentActionHandler.onRequestInput.

Implementation

@FreezedUnionValue('request_input')
const factory RichAction.requestInput({
  @JsonKey(name: 'input_type') required String inputType,
  required String label,
  @Default('both') String source,
  @Default('primary') String style,
}) = RequestInputAction;