feat: Added pin permissions list
This commit is contained in:
@@ -158,6 +158,7 @@ class MessageListView extends StatefulWidget {
|
||||
this.onAttachmentTap,
|
||||
this.textBuilder,
|
||||
this.onLinkTap,
|
||||
this.pinPermissions = const [],
|
||||
}) : super(key: key);
|
||||
|
||||
/// Function used to build a custom message widget
|
||||
@@ -264,6 +265,9 @@ class MessageListView extends StatefulWidget {
|
||||
/// Callback for when link is tapped
|
||||
final void Function(String link)? onLinkTap;
|
||||
|
||||
/// A List of user types that have permission to pin messages
|
||||
final List<String> pinPermissions;
|
||||
|
||||
@override
|
||||
_MessageListViewState createState() => _MessageListViewState();
|
||||
}
|
||||
@@ -800,6 +804,10 @@ class _MessageListViewState extends State<MessageListView> {
|
||||
) {
|
||||
final isMyMessage = message.user!.id == StreamChat.of(context).user!.id;
|
||||
final isOnlyEmoji = message.text!.isOnlyEmoji;
|
||||
final currentUser = StreamChat.of(context).user;
|
||||
final members = StreamChannel.of(context).channel.state?.members ?? [];
|
||||
final currentUserMember =
|
||||
members.firstWhere((e) => e.user!.id == currentUser!.id);
|
||||
|
||||
final chatThemeData = StreamChatTheme.of(context);
|
||||
return MessageWidget(
|
||||
@@ -853,6 +861,7 @@ class _MessageListViewState extends State<MessageListView> {
|
||||
textBuilder:
|
||||
widget.textBuilder as Widget Function(BuildContext, Message)?,
|
||||
onLinkTap: widget.onLinkTap,
|
||||
showPinButton: widget.pinPermissions.contains(currentUserMember.role),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -939,6 +948,11 @@ class _MessageListViewState extends State<MessageListView> {
|
||||
? BorderSide.none
|
||||
: null;
|
||||
|
||||
final currentUser = StreamChat.of(context).user;
|
||||
final members = StreamChannel.of(context).channel.state?.members ?? [];
|
||||
final currentUserMember =
|
||||
members.firstWhere((e) => e.user!.id == currentUser!.id);
|
||||
|
||||
final chatThemeData = StreamChatTheme.of(context);
|
||||
Widget child = MessageWidget(
|
||||
key: ValueKey<String>('MESSAGE-${message.id}'),
|
||||
@@ -1052,6 +1066,7 @@ class _MessageListViewState extends State<MessageListView> {
|
||||
textBuilder:
|
||||
widget.textBuilder as Widget Function(BuildContext, Message)?,
|
||||
onLinkTap: widget.onLinkTap,
|
||||
showPinButton: widget.pinPermissions.contains(currentUserMember.role),
|
||||
);
|
||||
|
||||
if (!message.isDeleted &&
|
||||
|
||||
Reference in New Issue
Block a user