From f046ff747cd750bc8ec4534d3c03e87004a1a717 Mon Sep 17 00:00:00 2001 From: "lucas.nguyen" Date: Mon, 10 Feb 2025 13:02:43 +0700 Subject: [PATCH] Only show "Pin/Unpin message" Action if user has permission --- CHANGELOG.md | 2 + .../DefaultMessageActions.swift | 42 ++++++++++--------- 2 files changed, 24 insertions(+), 20 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b13b23495..56288a484 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### 🐞 Fixed - Fix visibility of tabbar when reactions are shown [#750](https://github.com/GetStream/stream-chat-swiftui/pull/750) +### 🔄 Changed +- Only show "Pin/Unpin message" Action if user has permission [#749](https://github.com/GetStream/stream-chat-swiftui/pull/749) # [4.72.0](https://github.com/GetStream/stream-chat-swiftui/releases/tag/4.72.0) _February 04, 2025_ diff --git a/Sources/StreamChatSwiftUI/ChatChannel/Reactions/MessageActions/DefaultMessageActions.swift b/Sources/StreamChatSwiftUI/ChatChannel/Reactions/MessageActions/DefaultMessageActions.swift index 8e1681f18..0a112b41e 100644 --- a/Sources/StreamChatSwiftUI/ChatChannel/Reactions/MessageActions/DefaultMessageActions.swift +++ b/Sources/StreamChatSwiftUI/ChatChannel/Reactions/MessageActions/DefaultMessageActions.swift @@ -88,26 +88,28 @@ public extension MessageAction { messageActions.append(replyThread) } - if message.pinDetails != nil { - let unpinAction = unpinMessageAction( - for: message, - channel: channel, - chatClient: chatClient, - onFinish: onFinish, - onError: onError - ) - - messageActions.append(unpinAction) - } else { - let pinAction = pinMessageAction( - for: message, - channel: channel, - chatClient: chatClient, - onFinish: onFinish, - onError: onError - ) - - messageActions.append(pinAction) + if channel.canPinMessage { + if message.pinDetails != nil { + let unpinAction = unpinMessageAction( + for: message, + channel: channel, + chatClient: chatClient, + onFinish: onFinish, + onError: onError + ) + + messageActions.append(unpinAction) + } else { + let pinAction = pinMessageAction( + for: message, + channel: channel, + chatClient: chatClient, + onFinish: onFinish, + onError: onError + ) + + messageActions.append(pinAction) + } } if !message.text.isEmpty {