chore(ui): minor refactoring.
Signed-off-by: xsahil03x <[email protected]>
This commit is contained in:
@@ -1167,23 +1167,30 @@ class StreamMessageInputState extends State<StreamMessageInput>
|
|||||||
|
|
||||||
Widget _buildReplyToMessage() {
|
Widget _buildReplyToMessage() {
|
||||||
if (!_hasQuotedMessage) return const Offstage();
|
if (!_hasQuotedMessage) return const Offstage();
|
||||||
final containsUrl = _effectiveController.message.quotedMessage!.attachments
|
final quotedMessage = _effectiveController.message.quotedMessage!;
|
||||||
.any((element) => element.titleLink != null);
|
|
||||||
|
|
||||||
return widget.quotedMessageBuilder?.call(
|
final quotedMessageBuilder = widget.quotedMessageBuilder;
|
||||||
context,
|
if (quotedMessageBuilder != null) {
|
||||||
_effectiveController.message.quotedMessage!,
|
return quotedMessageBuilder(
|
||||||
) ??
|
context,
|
||||||
StreamQuotedMessageWidget(
|
_effectiveController.message.quotedMessage!,
|
||||||
reverse: true,
|
);
|
||||||
showBorder: !containsUrl,
|
}
|
||||||
message: _effectiveController.message.quotedMessage!,
|
|
||||||
messageTheme: _streamChatTheme.otherMessageTheme,
|
final containsUrl = quotedMessage.attachments.any((it) {
|
||||||
padding: const EdgeInsets.fromLTRB(8, 8, 8, 0),
|
return it.titleLink != null;
|
||||||
onQuotedMessageClear: widget.onQuotedMessageCleared,
|
});
|
||||||
attachmentThumbnailBuilders:
|
|
||||||
widget.quotedMessageAttachmentThumbnailBuilders,
|
return StreamQuotedMessageWidget(
|
||||||
);
|
reverse: true,
|
||||||
|
showBorder: !containsUrl,
|
||||||
|
message: quotedMessage,
|
||||||
|
messageTheme: _streamChatTheme.otherMessageTheme,
|
||||||
|
padding: const EdgeInsets.fromLTRB(8, 8, 8, 0),
|
||||||
|
onQuotedMessageClear: widget.onQuotedMessageCleared,
|
||||||
|
attachmentThumbnailBuilders:
|
||||||
|
widget.quotedMessageAttachmentThumbnailBuilders,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildAttachments() {
|
Widget _buildAttachments() {
|
||||||
@@ -1195,27 +1202,13 @@ class StreamMessageInputState extends State<StreamMessageInput>
|
|||||||
// If there are no attachments, return an empty widget
|
// If there are no attachments, return an empty widget
|
||||||
if (nonOGAttachments.isEmpty) return const Offstage();
|
if (nonOGAttachments.isEmpty) return const Offstage();
|
||||||
|
|
||||||
// Default callback for removing an attachment.
|
|
||||||
Future<void> onAttachmentRemovePressed(Attachment attachment) async {
|
|
||||||
final file = attachment.file;
|
|
||||||
final uploadState = attachment.uploadState;
|
|
||||||
|
|
||||||
if (file != null && !uploadState.isSuccess && !isWeb) {
|
|
||||||
await StreamAttachmentHandler.instance.deleteAttachmentFile(
|
|
||||||
attachmentFile: file,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
_effectiveController.removeAttachmentById(attachment.id);
|
|
||||||
}
|
|
||||||
|
|
||||||
// If the user has provided a custom attachment list builder, use that.
|
// If the user has provided a custom attachment list builder, use that.
|
||||||
final attachmentListBuilder = widget.attachmentListBuilder;
|
final attachmentListBuilder = widget.attachmentListBuilder;
|
||||||
if (attachmentListBuilder != null) {
|
if (attachmentListBuilder != null) {
|
||||||
return attachmentListBuilder(
|
return attachmentListBuilder(
|
||||||
context,
|
context,
|
||||||
nonOGAttachments,
|
nonOGAttachments,
|
||||||
onAttachmentRemovePressed,
|
_onAttachmentRemovePressed,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1224,7 +1217,7 @@ class StreamMessageInputState extends State<StreamMessageInput>
|
|||||||
maxHeight: 240,
|
maxHeight: 240,
|
||||||
child: StreamMessageInputAttachmentList(
|
child: StreamMessageInputAttachmentList(
|
||||||
attachments: nonOGAttachments,
|
attachments: nonOGAttachments,
|
||||||
onRemovePressed: onAttachmentRemovePressed,
|
onRemovePressed: _onAttachmentRemovePressed,
|
||||||
fileAttachmentListBuilder: widget.fileAttachmentListBuilder,
|
fileAttachmentListBuilder: widget.fileAttachmentListBuilder,
|
||||||
mediaAttachmentListBuilder: widget.mediaAttachmentListBuilder,
|
mediaAttachmentListBuilder: widget.mediaAttachmentListBuilder,
|
||||||
fileAttachmentBuilder: widget.fileAttachmentBuilder,
|
fileAttachmentBuilder: widget.fileAttachmentBuilder,
|
||||||
@@ -1270,6 +1263,20 @@ class StreamMessageInputState extends State<StreamMessageInput>
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Default callback for removing an attachment.
|
||||||
|
Future<void> _onAttachmentRemovePressed(Attachment attachment) async {
|
||||||
|
final file = attachment.file;
|
||||||
|
final uploadState = attachment.uploadState;
|
||||||
|
|
||||||
|
if (file != null && !uploadState.isSuccess && !isWeb) {
|
||||||
|
await StreamAttachmentHandler.instance.deleteAttachmentFile(
|
||||||
|
attachmentFile: file,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
_effectiveController.removeAttachmentById(attachment.id);
|
||||||
|
}
|
||||||
|
|
||||||
Widget _buildCommandButton(BuildContext context) {
|
Widget _buildCommandButton(BuildContext context) {
|
||||||
final s = _effectiveController.text.trim();
|
final s = _effectiveController.text.trim();
|
||||||
final isCommandOptionsVisible = s.startsWith(_kCommandTrigger);
|
final isCommandOptionsVisible = s.startsWith(_kCommandTrigger);
|
||||||
|
|||||||
Reference in New Issue
Block a user