chore: migrate and update tests.
Signed-off-by: xsahil03x <[email protected]>
This commit is contained in:
@@ -61,7 +61,6 @@ class StreamMessageWidget extends StatefulWidget {
|
||||
this.showInChannelIndicator = false,
|
||||
this.onReplyTap,
|
||||
this.onThreadTap,
|
||||
this.onConfirmDeleteTap,
|
||||
this.showUsername = true,
|
||||
this.showTimestamp = true,
|
||||
this.showReactions = true,
|
||||
@@ -79,7 +78,6 @@ class StreamMessageWidget extends StatefulWidget {
|
||||
this.onMessageActions,
|
||||
this.onShowMessage,
|
||||
this.userAvatarBuilder,
|
||||
this.quotedMessageBuilder,
|
||||
this.editMessageInputBuilder,
|
||||
this.textBuilder,
|
||||
@Deprecated('''
|
||||
@@ -309,11 +307,6 @@ class StreamMessageWidget extends StatefulWidget {
|
||||
/// {@endtemplate}
|
||||
final void Function(Message)? onReplyTap;
|
||||
|
||||
/// {@template onDeleteTap}
|
||||
/// The function called when delete confirmation button is tapped.
|
||||
/// {@endtemplate}
|
||||
final Future<void> Function(Message)? onConfirmDeleteTap;
|
||||
|
||||
/// {@template editMessageInputBuilder}
|
||||
/// Widget builder for edit message layout
|
||||
/// {@endtemplate}
|
||||
@@ -355,11 +348,6 @@ class StreamMessageWidget extends StatefulWidget {
|
||||
/// {@endtemplate}
|
||||
final Widget Function(BuildContext, User)? userAvatarBuilder;
|
||||
|
||||
/// {@template quotedMessageBuilder}
|
||||
/// Widget builder for building quoted message
|
||||
/// {@endtemplate}
|
||||
final Widget Function(BuildContext, Message)? quotedMessageBuilder;
|
||||
|
||||
/// {@template message}
|
||||
/// The message to display.
|
||||
/// {@endtemplate}
|
||||
@@ -580,10 +568,8 @@ class StreamMessageWidget extends StatefulWidget {
|
||||
void Function(User)? onMentionTap,
|
||||
void Function(Message)? onThreadTap,
|
||||
void Function(Message)? onReplyTap,
|
||||
Future<void> Function(Message)? onConfirmDeleteTap,
|
||||
Widget Function(BuildContext, Message)? editMessageInputBuilder,
|
||||
Widget Function(BuildContext, Message)? textBuilder,
|
||||
Widget Function(BuildContext, Message)? quotedMessageBuilder,
|
||||
@Deprecated('''
|
||||
Use [bottomRowBuilderWithDefaultWidget] instead.
|
||||
Will be removed in the next major version.
|
||||
@@ -673,11 +659,9 @@ class StreamMessageWidget extends StatefulWidget {
|
||||
onMentionTap: onMentionTap ?? this.onMentionTap,
|
||||
onThreadTap: onThreadTap ?? this.onThreadTap,
|
||||
onReplyTap: onReplyTap ?? this.onReplyTap,
|
||||
onConfirmDeleteTap: onConfirmDeleteTap ?? this.onConfirmDeleteTap,
|
||||
editMessageInputBuilder:
|
||||
editMessageInputBuilder ?? this.editMessageInputBuilder,
|
||||
textBuilder: textBuilder ?? this.textBuilder,
|
||||
quotedMessageBuilder: quotedMessageBuilder ?? this.quotedMessageBuilder,
|
||||
bottomRowBuilderWithDefaultWidget: _bottomRowBuilderWithDefaultWidget,
|
||||
onMessageActions: onMessageActions ?? this.onMessageActions,
|
||||
message: message ?? this.message,
|
||||
@@ -760,13 +744,11 @@ class _StreamMessageWidgetState extends State<StreamMessageWidget>
|
||||
/// {@endtemplate}
|
||||
bool get hasQuotedMessage => widget.message.quotedMessage != null;
|
||||
|
||||
bool get isSendFailed => widget.message.status == MessageSendingStatus.failed;
|
||||
bool get isSendFailed => widget.message.state.isSendingFailed;
|
||||
|
||||
bool get isUpdateFailed =>
|
||||
widget.message.status == MessageSendingStatus.failed_update;
|
||||
bool get isUpdateFailed => widget.message.state.isUpdatingFailed;
|
||||
|
||||
bool get isDeleteFailed =>
|
||||
widget.message.status == MessageSendingStatus.failed_delete;
|
||||
bool get isDeleteFailed => widget.message.state.isDeletingFailed;
|
||||
|
||||
/// {@template isFailedState}
|
||||
/// Whether the message has failed to be sent, updated, or deleted.
|
||||
@@ -973,7 +955,6 @@ class _StreamMessageWidgetState extends State<StreamMessageWidget>
|
||||
borderSide: widget.borderSide,
|
||||
borderRadiusGeometry: widget.borderRadiusGeometry,
|
||||
textBuilder: widget.textBuilder,
|
||||
quotedMessageBuilder: widget.quotedMessageBuilder,
|
||||
onLinkTap: widget.onLinkTap,
|
||||
onMentionTap: widget.onMentionTap,
|
||||
onQuotedMessageTap: widget.onQuotedMessageTap,
|
||||
@@ -1090,14 +1071,12 @@ class _StreamMessageWidgetState extends State<StreamMessageWidget>
|
||||
leading: StreamSvgIcon.iconSendMessage(),
|
||||
title: Text(
|
||||
context.translations.toggleResendOrResendEditedMessage(
|
||||
isUpdateFailed:
|
||||
widget.message.status == MessageSendingStatus.failed,
|
||||
isUpdateFailed: widget.message.state.isUpdatingFailed,
|
||||
),
|
||||
),
|
||||
onClick: () {
|
||||
Navigator.of(context, rootNavigator: true).pop();
|
||||
final isUpdateFailed =
|
||||
widget.message.status == MessageSendingStatus.failed_update;
|
||||
final isUpdateFailed = widget.message.state.isUpdatingFailed;
|
||||
final channel = StreamChannel.of(context).channel;
|
||||
if (isUpdateFailed) {
|
||||
channel.updateMessage(widget.message);
|
||||
@@ -1115,21 +1094,16 @@ class _StreamMessageWidgetState extends State<StreamMessageWidget>
|
||||
),
|
||||
onClick: () async {
|
||||
Navigator.of(context, rootNavigator: true).pop();
|
||||
final deleted = await showDialog<bool?>(
|
||||
final deleted = await showDialog(
|
||||
context: context,
|
||||
barrierDismissible: false,
|
||||
builder: (_) => const DeleteMessageDialog(),
|
||||
);
|
||||
if (deleted == true) {
|
||||
if (deleted) {
|
||||
try {
|
||||
final onConfirmDeleteTap = widget.onConfirmDeleteTap;
|
||||
if (onConfirmDeleteTap != null) {
|
||||
await onConfirmDeleteTap(widget.message);
|
||||
} else {
|
||||
await StreamChannel.of(context)
|
||||
.channel
|
||||
.deleteMessage(widget.message);
|
||||
}
|
||||
await StreamChannel.of(context)
|
||||
.channel
|
||||
.deleteMessage(widget.message);
|
||||
} catch (e) {
|
||||
showDialog(
|
||||
context: context,
|
||||
@@ -1150,8 +1124,7 @@ class _StreamMessageWidgetState extends State<StreamMessageWidget>
|
||||
}
|
||||
|
||||
void onLongPress(BuildContext context) {
|
||||
if (widget.message.isEphemeral ||
|
||||
widget.message.status == MessageSendingStatus.sending) {
|
||||
if (widget.message.isEphemeral || widget.message.state.isOutgoing) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1187,8 +1160,8 @@ class _StreamMessageWidgetState extends State<StreamMessageWidget>
|
||||
translateUserAvatar: false,
|
||||
showSendingIndicator: false,
|
||||
padding: EdgeInsets.zero,
|
||||
showReactionPickerIndicator: widget.showReactions &&
|
||||
(widget.message.status == MessageSendingStatus.sent),
|
||||
showReactionPickerIndicator:
|
||||
widget.showReactions && widget.message.state.isCompleted,
|
||||
showPinHighlight: false,
|
||||
showUserAvatar:
|
||||
widget.message.user!.id == channel.client.state.currentUser!.id
|
||||
|
||||
@@ -63,7 +63,6 @@ class MessageWidgetContent extends StatelessWidget {
|
||||
this.onMentionTap,
|
||||
this.onLinkTap,
|
||||
this.textBuilder,
|
||||
this.quotedMessageBuilder,
|
||||
@Deprecated('''
|
||||
Use [bottomRowBuilderWithDefaultWidget] instead.
|
||||
Will be removed in the next major version.
|
||||
@@ -171,9 +170,6 @@ class MessageWidgetContent extends StatelessWidget {
|
||||
/// {@macro textBuilder}
|
||||
final Widget Function(BuildContext, Message)? textBuilder;
|
||||
|
||||
/// {@macro quotedMessageBuilder}
|
||||
final Widget Function(BuildContext, Message)? quotedMessageBuilder;
|
||||
|
||||
/// {@macro showReactionPickerIndicator}
|
||||
final bool showReactionPickerIndicator;
|
||||
|
||||
@@ -355,8 +351,6 @@ class MessageWidgetContent extends StatelessWidget {
|
||||
onMentionTap: onMentionTap,
|
||||
onLinkTap: onLinkTap,
|
||||
textBuilder: textBuilder,
|
||||
quotedMessageBuilder:
|
||||
quotedMessageBuilder,
|
||||
borderRadiusGeometry:
|
||||
borderRadiusGeometry,
|
||||
borderSide: borderSide,
|
||||
@@ -458,7 +452,7 @@ class MessageWidgetContent extends StatelessWidget {
|
||||
showSendingIndicator: false,
|
||||
padding: EdgeInsets.zero,
|
||||
showReactionPickerIndicator:
|
||||
showReactions && (message.status == MessageSendingStatus.sent),
|
||||
showReactions && message.state.isCompleted,
|
||||
showPinHighlight: false,
|
||||
showUserAvatar:
|
||||
message.user!.id == channel.client.state.currentUser!.id
|
||||
|
||||
+1
-1
@@ -57,7 +57,7 @@ class StreamMessageReactionsModal extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||
children: <Widget>[
|
||||
if ((showReactions ?? hasReactionPermission) &&
|
||||
(message.status == MessageSendingStatus.sent))
|
||||
message.state.isCompleted)
|
||||
LayoutBuilder(
|
||||
builder: (context, constraints) {
|
||||
return Align(
|
||||
|
||||
+12
-16
@@ -42,25 +42,21 @@ class SendingIndicatorBuilder extends StatelessWidget {
|
||||
final channel = this.channel ?? StreamChannel.of(context).channel;
|
||||
final memberCount = channel.memberCount ?? 0;
|
||||
|
||||
if (hasNonUrlAttachments &&
|
||||
(message.status == MessageSendingStatus.sending ||
|
||||
message.status == MessageSendingStatus.updating)) {
|
||||
if (hasNonUrlAttachments && message.state.isOutgoing) {
|
||||
final totalAttachments = message.attachments.length;
|
||||
final uploadRemaining =
|
||||
message.attachments.where((it) => !it.uploadState.isSuccess).length;
|
||||
if (uploadRemaining == 0) {
|
||||
return StreamSvgIcon.check(
|
||||
size: style!.fontSize,
|
||||
color: IconTheme.of(context).color!.withOpacity(0.5),
|
||||
final attachmentsToUpload = message.attachments.where((it) {
|
||||
return !it.uploadState.isSuccess;
|
||||
});
|
||||
|
||||
if (attachmentsToUpload.isNotEmpty) {
|
||||
return Text(
|
||||
context.translations.attachmentsUploadProgressText(
|
||||
remaining: attachmentsToUpload.length,
|
||||
total: totalAttachments,
|
||||
),
|
||||
style: style,
|
||||
);
|
||||
}
|
||||
return Text(
|
||||
context.translations.attachmentsUploadProgressText(
|
||||
remaining: uploadRemaining,
|
||||
total: totalAttachments,
|
||||
),
|
||||
style: style,
|
||||
);
|
||||
}
|
||||
|
||||
return BetterStreamBuilder<List<Read>>(
|
||||
|
||||
Reference in New Issue
Block a user