ConversationDetailPage class

Inheritance

Constructors

ConversationDetailPage({Key? key, String? title, String? subtitle, List<Map<String, dynamic>>? messages, List<Map<String, dynamic>>? broadcastData, bool? isSearching, String? searchQuery, bool? showEmojiPicker, TextEditingController? messageController, TextEditingController? searchController, FocusNode? focusNode, VoidCallback? onSendMessage, ValueChanged<String>? onSearchQueryChanged, VoidCallback? onToggleEmojiPicker, VoidCallback? onToggleSearch, VoidCallback? onClearSearch, VoidCallback? onBackPressed, bool addDemoData = true, bool showAppBar = true, bool readOnly = false, void onReactionSelected(Map<String, dynamic> message, String reaction)?, ValueChanged<Map<String, dynamic>?>? onTagChanged, List<String>? mentionableUsers, VoidCallback? onBack, int? userId, ValueChanged<List<File>>? onMediaPicked, bool? showMediaPicker = true, bool isLoading = false, bool isLoadingMore = false, bool hasMoreMessages = true, Future<void> onLoadMoreMessages()?, ScrollController? scrollController, Widget? shimmerPlaceholder, bool showDateSeparators = true, Widget? emptyPlaceholder, String? emptyTitle, String? emptySubtitle, IconData? emptyIcon, bool? showBackButton, bool? forceShowBackButton})
const

Properties

addDemoData bool
final
broadcastData List<Map<String, dynamic>>?
final
emptyIcon IconData?
Optional icon for empty message state (default: Icons.chat_bubble_outline_rounded).
final
emptyPlaceholder Widget?
Optional custom empty placeholder widget when there are no messages.
final
emptySubtitle String?
Optional subtitle for empty message state (default: "Send a message to start the conversation").
final
emptyTitle String?
Optional title for empty message state (default: "No messages yet").
final
focusNode FocusNode?
final
forceShowBackButton bool?
Alias / convenience property for showBackButton. When true, forces the back button to be visible.
final
hashCode int
The hash code for this object.
no setterinherited
hasMoreMessages bool
Whether more older messages exist to load.
final
isLoading bool
Whether the conversation detail page is in initial loading state (shows shimmer).
final
isLoadingMore bool
Whether older messages are currently being fetched on scroll to top.
final
isSearching bool?
final
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
mentionableUsers List<String>?
final
messageController TextEditingController?
final
messages List<Map<String, dynamic>>?
final
onBack VoidCallback?
final
onBackPressed VoidCallback?
final
onClearSearch VoidCallback?
final
onLoadMoreMessages Future<void> Function()?
Callback triggered when user scrolls to the top of the conversation.
final
onMediaPicked ValueChanged<List<File>>?
final
onReactionSelected → void Function(Map<String, dynamic> message, String reaction)?
final
onSearchQueryChanged ValueChanged<String>?
final
onSendMessage VoidCallback?
final
onTagChanged ValueChanged<Map<String, dynamic>?>?
final
onToggleEmojiPicker VoidCallback?
final
onToggleSearch VoidCallback?
final
readOnly bool
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
scrollController ScrollController?
Optional external scroll controller.
final
searchController TextEditingController?
final
searchQuery String?
final
shimmerPlaceholder Widget?
Optional custom shimmer loading placeholder.
final
showAppBar bool
final
showBackButton bool?
Optional flag to control visibility of the back button in the AppBar. If null, defaults to responsive behavior (visible on mobile, hidden on tablet/landscape split layouts). If true, always shows the back button regardless of screen size. If false, hides the back button.
final
showDateSeparators bool
Whether to show WhatsApp-style date separators (e.g. "Today", "Yesterday", "August 30, 2026").
final
showEmojiPicker bool?
final
showMediaPicker bool?
final
subtitle String?
final
title String?
final
userId int?
final

Methods

createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() State<ConversationDetailPage>
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