fix attachment border radius
This commit is contained in:
@@ -5,10 +5,10 @@ import 'package:flutter/foundation.dart';
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:stream_chat_flutter/src/message_action.dart';
|
import 'package:stream_chat_flutter/src/message_action.dart';
|
||||||
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
|
|
||||||
import 'package:stream_chat_flutter/src/reaction_picker.dart';
|
import 'package:stream_chat_flutter/src/reaction_picker.dart';
|
||||||
import 'package:stream_chat_flutter/src/stream_svg_icon.dart';
|
import 'package:stream_chat_flutter/src/stream_svg_icon.dart';
|
||||||
import 'package:stream_chat_flutter/src/utils.dart';
|
import 'package:stream_chat_flutter/src/utils.dart';
|
||||||
|
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
|
||||||
|
|
||||||
import 'extension.dart';
|
import 'extension.dart';
|
||||||
import 'message_input.dart';
|
import 'message_input.dart';
|
||||||
@@ -34,6 +34,7 @@ class MessageActionsModal extends StatefulWidget {
|
|||||||
final ShapeBorder messageShape;
|
final ShapeBorder messageShape;
|
||||||
final ShapeBorder attachmentShape;
|
final ShapeBorder attachmentShape;
|
||||||
final DisplayWidget showUserAvatar;
|
final DisplayWidget showUserAvatar;
|
||||||
|
final BorderRadius attachmentBorderRadiusGeometry;
|
||||||
|
|
||||||
/// List of custom actions
|
/// List of custom actions
|
||||||
final List<MessageAction> customActions;
|
final List<MessageAction> customActions;
|
||||||
@@ -58,6 +59,7 @@ class MessageActionsModal extends StatefulWidget {
|
|||||||
this.attachmentShape,
|
this.attachmentShape,
|
||||||
this.reverse = false,
|
this.reverse = false,
|
||||||
this.customActions = const [],
|
this.customActions = const [],
|
||||||
|
this.attachmentBorderRadiusGeometry,
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -153,6 +155,8 @@ class _MessageActionsModalState extends State<MessageActionsModal> {
|
|||||||
child: MessageWidget(
|
child: MessageWidget(
|
||||||
key: Key('MessageWidget'),
|
key: Key('MessageWidget'),
|
||||||
reverse: widget.reverse,
|
reverse: widget.reverse,
|
||||||
|
attachmentBorderRadiusGeometry:
|
||||||
|
widget.attachmentBorderRadiusGeometry,
|
||||||
message: widget.message.copyWith(
|
message: widget.message.copyWith(
|
||||||
text: widget.message.text.length > 200
|
text: widget.message.text.length > 200
|
||||||
? '${widget.message.text.substring(0, 200)}...'
|
? '${widget.message.text.substring(0, 200)}...'
|
||||||
|
|||||||
@@ -1,17 +1,16 @@
|
|||||||
import 'dart:ui';
|
import 'dart:ui';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:stream_chat_flutter/src/message_action.dart';
|
|
||||||
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
|
|
||||||
import 'package:stream_chat_flutter_core/stream_chat_flutter_core.dart';
|
|
||||||
import 'package:stream_chat_flutter/src/reaction_bubble.dart';
|
import 'package:stream_chat_flutter/src/reaction_bubble.dart';
|
||||||
import 'package:stream_chat_flutter/src/reaction_picker.dart';
|
import 'package:stream_chat_flutter/src/reaction_picker.dart';
|
||||||
import 'package:stream_chat_flutter/src/stream_chat.dart';
|
import 'package:stream_chat_flutter/src/stream_chat.dart';
|
||||||
import 'package:stream_chat_flutter/src/user_avatar.dart';
|
import 'package:stream_chat_flutter/src/user_avatar.dart';
|
||||||
|
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
|
||||||
|
import 'package:stream_chat_flutter_core/stream_chat_flutter_core.dart';
|
||||||
|
|
||||||
|
import 'extension.dart';
|
||||||
import 'message_widget.dart';
|
import 'message_widget.dart';
|
||||||
import 'stream_chat_theme.dart';
|
import 'stream_chat_theme.dart';
|
||||||
import 'extension.dart';
|
|
||||||
|
|
||||||
class MessageReactionsModal extends StatelessWidget {
|
class MessageReactionsModal extends StatelessWidget {
|
||||||
final Widget Function(BuildContext, Message) editMessageInputBuilder;
|
final Widget Function(BuildContext, Message) editMessageInputBuilder;
|
||||||
@@ -24,6 +23,7 @@ class MessageReactionsModal extends StatelessWidget {
|
|||||||
final ShapeBorder messageShape;
|
final ShapeBorder messageShape;
|
||||||
final ShapeBorder attachmentShape;
|
final ShapeBorder attachmentShape;
|
||||||
final void Function(User) onUserAvatarTap;
|
final void Function(User) onUserAvatarTap;
|
||||||
|
final BorderRadius attachmentBorderRadiusGeometry;
|
||||||
|
|
||||||
const MessageReactionsModal({
|
const MessageReactionsModal({
|
||||||
Key key,
|
Key key,
|
||||||
@@ -37,6 +37,7 @@ class MessageReactionsModal extends StatelessWidget {
|
|||||||
this.reverse = false,
|
this.reverse = false,
|
||||||
this.showUserAvatar = DisplayWidget.show,
|
this.showUserAvatar = DisplayWidget.show,
|
||||||
this.onUserAvatarTap,
|
this.onUserAvatarTap,
|
||||||
|
this.attachmentBorderRadiusGeometry,
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -133,6 +134,8 @@ class MessageReactionsModal extends StatelessWidget {
|
|||||||
shape: messageShape,
|
shape: messageShape,
|
||||||
attachmentShape: attachmentShape,
|
attachmentShape: attachmentShape,
|
||||||
padding: const EdgeInsets.all(0),
|
padding: const EdgeInsets.all(0),
|
||||||
|
attachmentBorderRadiusGeometry:
|
||||||
|
attachmentBorderRadiusGeometry,
|
||||||
attachmentPadding: EdgeInsets.all(
|
attachmentPadding: EdgeInsets.all(
|
||||||
hasFileAttachment ? 4 : 2,
|
hasFileAttachment ? 4 : 2,
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -235,6 +235,7 @@ class MessageWidget extends StatefulWidget {
|
|||||||
),
|
),
|
||||||
border,
|
border,
|
||||||
reverse,
|
reverse,
|
||||||
|
attachmentBorderRadiusGeometry ?? BorderRadius.zero,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -259,6 +260,7 @@ class MessageWidget extends StatefulWidget {
|
|||||||
),
|
),
|
||||||
border,
|
border,
|
||||||
reverse,
|
reverse,
|
||||||
|
attachmentBorderRadiusGeometry ?? BorderRadius.zero,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
'video': (context, message, attachments) {
|
'video': (context, message, attachments) {
|
||||||
@@ -291,6 +293,7 @@ class MessageWidget extends StatefulWidget {
|
|||||||
),
|
),
|
||||||
border,
|
border,
|
||||||
reverse,
|
reverse,
|
||||||
|
attachmentBorderRadiusGeometry ?? BorderRadius.zero,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
'giphy': (context, message, attachments) {
|
'giphy': (context, message, attachments) {
|
||||||
@@ -318,6 +321,7 @@ class MessageWidget extends StatefulWidget {
|
|||||||
),
|
),
|
||||||
border,
|
border,
|
||||||
reverse,
|
reverse,
|
||||||
|
attachmentBorderRadiusGeometry ?? BorderRadius.zero,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
'file': (context, message, attachments) {
|
'file': (context, message, attachments) {
|
||||||
@@ -329,22 +333,28 @@ class MessageWidget extends StatefulWidget {
|
|||||||
borderRadius: attachmentBorderRadiusGeometry ?? BorderRadius.zero,
|
borderRadius: attachmentBorderRadiusGeometry ?? BorderRadius.zero,
|
||||||
);
|
);
|
||||||
|
|
||||||
return wrapAttachmentWidget(
|
return Column(
|
||||||
context,
|
children: attachments
|
||||||
Column(
|
.map<Widget>((attachment) {
|
||||||
children: attachments.map((attachment) {
|
return wrapAttachmentWidget(
|
||||||
return FileAttachment(
|
context,
|
||||||
message: message,
|
FileAttachment(
|
||||||
attachment: attachment,
|
message: message,
|
||||||
size: Size(
|
attachment: attachment,
|
||||||
MediaQuery.of(context).size.width * 0.8,
|
size: Size(
|
||||||
MediaQuery.of(context).size.height * 0.3,
|
MediaQuery.of(context).size.width * 0.8,
|
||||||
),
|
MediaQuery.of(context).size.height * 0.3,
|
||||||
);
|
),
|
||||||
}).toList(),
|
),
|
||||||
),
|
border,
|
||||||
border,
|
reverse,
|
||||||
reverse,
|
attachmentBorderRadiusGeometry ?? BorderRadius.zero,
|
||||||
|
);
|
||||||
|
})
|
||||||
|
.insertBetween(SizedBox(
|
||||||
|
height: attachmentPadding.vertical / 2,
|
||||||
|
))
|
||||||
|
.toList(),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
}..addAll(customAttachmentBuilders ?? {}),
|
}..addAll(customAttachmentBuilders ?? {}),
|
||||||
@@ -822,6 +832,8 @@ class _MessageWidgetState extends State<MessageWidget>
|
|||||||
return StreamChannel(
|
return StreamChannel(
|
||||||
channel: channel,
|
channel: channel,
|
||||||
child: MessageActionsModal(
|
child: MessageActionsModal(
|
||||||
|
attachmentBorderRadiusGeometry:
|
||||||
|
widget.attachmentBorderRadiusGeometry,
|
||||||
showUserAvatar:
|
showUserAvatar:
|
||||||
widget.message.user.id == channel.client.state.user.id
|
widget.message.user.id == channel.client.state.user.id
|
||||||
? DisplayWidget.gone
|
? DisplayWidget.gone
|
||||||
@@ -869,6 +881,8 @@ class _MessageWidgetState extends State<MessageWidget>
|
|||||||
return StreamChannel(
|
return StreamChannel(
|
||||||
channel: channel,
|
channel: channel,
|
||||||
child: MessageReactionsModal(
|
child: MessageReactionsModal(
|
||||||
|
attachmentBorderRadiusGeometry:
|
||||||
|
widget.attachmentBorderRadiusGeometry,
|
||||||
showUserAvatar:
|
showUserAvatar:
|
||||||
widget.message.user.id == channel.client.state.user.id
|
widget.message.user.id == channel.client.state.user.id
|
||||||
? DisplayWidget.gone
|
? DisplayWidget.gone
|
||||||
|
|||||||
@@ -356,15 +356,19 @@ Widget wrapAttachmentWidget(
|
|||||||
Widget attachmentWidget,
|
Widget attachmentWidget,
|
||||||
ShapeBorder attachmentShape,
|
ShapeBorder attachmentShape,
|
||||||
bool reverse,
|
bool reverse,
|
||||||
|
BorderRadius borderRadius,
|
||||||
) {
|
) {
|
||||||
return Material(
|
return ClipRRect(
|
||||||
clipBehavior: Clip.antiAlias,
|
borderRadius: borderRadius,
|
||||||
shape: attachmentShape,
|
child: Material(
|
||||||
type: MaterialType.transparency,
|
clipBehavior: Clip.antiAlias,
|
||||||
child: Transform(
|
shape: attachmentShape,
|
||||||
transform: Matrix4.rotationY(reverse ? pi : 0),
|
type: MaterialType.transparency,
|
||||||
alignment: Alignment.center,
|
child: Transform(
|
||||||
child: attachmentWidget,
|
transform: Matrix4.rotationY(reverse ? pi : 0),
|
||||||
|
alignment: Alignment.center,
|
||||||
|
child: attachmentWidget,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user