ChatItemWidget constructor 
    
      const
      ChatItemWidget({ - Key? key, 
 
- required Rx<ChatItem> item, 
 
- required Rx<Chat?> chat, 
 
- required UserId me, 
 
- RxUser? user, 
 
- bool withName = false, 
 
- bool withAvatar = true, 
 
- bool appendAvatarPadding = true, 
 
- bool selectable = true, 
 
- Iterable<LastChatRead> reads = const [], 
 
- FutureOr<RxUser?> getUser(
 - UserId userId
 
)?,  
- FutureOr<Rx<ChatItem>?> getItem(
 - ChatItemId itemId
 
)?,  
- void onHide()?, 
 
- void onDelete()?, 
 
- void onReply(
 - ChatItem
 
)?,  
- void onEdit()?, 
 
- void onCopy(
 - String text
 
)?,  
- Paginated<ChatItemId, Rx<ChatItem>> onGallery()?, 
 
- void onRepliedTap(
 - ChatItemQuote
 
)?,  
- void onResend()?, 
 
- void onFileTap(
 - FileAttachment
 
)?,  
- Future<void> onAttachmentError(
 - ChatItem?
 
)?,  
- void onDownload(
 - List<Attachment>
 
)?,  
- void onDownloadAs(
 - List<Attachment>
 
)?,  
- void onSave(
 - List<Attachment>
 
)?,  
- void onSelect()?, 
 
- void onSearch()?, 
 
- void onUserPressed(
 - User
 
) = _defaultOnUserPressed,  
- void onDragging(
 - bool
 
)?,  
- void onAnimateTo(
 - ChatItem
 
)?,  
})
    
    
    
  Implementation
  const ChatItemWidget({
  super.key,
  required this.item,
  required this.chat,
  required this.me,
  this.user,
  this.withName = false,
  this.withAvatar = true,
  this.appendAvatarPadding = true,
  this.selectable = true,
  this.reads = const [],
  this.getUser,
  this.getItem,
  this.onHide,
  this.onDelete,
  this.onReply,
  this.onEdit,
  this.onCopy,
  this.onGallery,
  this.onRepliedTap,
  this.onResend,
  this.onFileTap,
  this.onAttachmentError,
  this.onDownload,
  this.onDownloadAs,
  this.onSave,
  this.onSelect,
  this.onSearch,
  this.onUserPressed = _defaultOnUserPressed,
  this.onDragging,
  this.onAnimateTo,
});