ConversationDetailPage class
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