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