diff --git a/CHANGELOG.md b/CHANGELOG.md index 6f00fe415..fbc7a6167 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). # Upcoming +### ✅ Added +- Exposes all the default message actions [#711](https://github.com/GetStream/stream-chat-swiftui/pull/711) ### 🐞 Fixed - Use bright color for typing indicator animation in dark mode [#702](https://github.com/GetStream/stream-chat-swiftui/pull/702) - Refresh quoted message preview when the quoted message is deleted [#705](https://github.com/GetStream/stream-chat-swiftui/pull/705) diff --git a/Sources/StreamChatSwiftUI/ChatChannel/Reactions/MessageActions/DefaultMessageActions.swift b/Sources/StreamChatSwiftUI/ChatChannel/Reactions/MessageActions/DefaultMessageActions.swift index 9eaca98e0..b454a8eca 100644 --- a/Sources/StreamChatSwiftUI/ChatChannel/Reactions/MessageActions/DefaultMessageActions.swift +++ b/Sources/StreamChatSwiftUI/ChatChannel/Reactions/MessageActions/DefaultMessageActions.swift @@ -5,7 +5,9 @@ import StreamChat import SwiftUI -extension MessageAction { +// MARK: - Default Message Actions + +public extension MessageAction { /// Returns the default message actions. /// /// - Parameters: @@ -13,7 +15,7 @@ extension MessageAction { /// - chatClient: the chat client. /// - onDimiss: called when the action is executed. /// - Returns: array of `MessageAction`. - public static func defaultActions( + static func defaultActions( factory: Factory, for message: ChatMessage, channel: ChatChannel, @@ -229,9 +231,8 @@ extension MessageAction { return messageActions } - // MARK: - private - - private static func copyMessageAction( + /// The action to copy the message text. + static func copyMessageAction( for message: ChatMessage, onFinish: @escaping (MessageActionInfo) -> Void ) -> MessageAction { @@ -255,7 +256,8 @@ extension MessageAction { return copyAction } - private static func editMessageAction( + /// The action to edit the message. + static func editMessageAction( for message: ChatMessage, channel: ChatChannel, onFinish: @escaping (MessageActionInfo) -> Void @@ -279,7 +281,8 @@ extension MessageAction { return editAction } - private static func pinMessageAction( + /// The action to pin the message. + static func pinMessageAction( for message: ChatMessage, channel: ChatChannel, chatClient: ChatClient, @@ -318,7 +321,8 @@ extension MessageAction { return pinAction } - private static func unpinMessageAction( + /// The action to unpin the message. + static func unpinMessageAction( for message: ChatMessage, channel: ChatChannel, chatClient: ChatClient, @@ -357,7 +361,8 @@ extension MessageAction { return pinAction } - private static func replyAction( + /// The action to reply to the message + static func replyAction( for message: ChatMessage, channel: ChatChannel, onFinish: @escaping (MessageActionInfo) -> Void @@ -381,7 +386,8 @@ extension MessageAction { return replyAction } - private static func threadReplyAction( + /// The action to reply to the message in a thread + static func threadReplyAction( factory: Factory, for message: ChatMessage, channel: ChatChannel @@ -404,7 +410,8 @@ extension MessageAction { return replyThread } - private static func deleteMessageAction( + /// The action to delete the message. + static func deleteMessageAction( for message: ChatMessage, channel: ChatChannel, chatClient: ChatClient, @@ -449,7 +456,8 @@ extension MessageAction { return deleteMessage } - private static func flagMessageAction( + /// The action to flag the message. + static func flagMessageAction( for message: ChatMessage, channel: ChatChannel, chatClient: ChatClient, @@ -493,8 +501,9 @@ extension MessageAction { return flagMessage } - - private static func markAsUnreadAction( + + /// The action to mark the message as unread. + static func markAsUnreadAction( for message: ChatMessage, channel: ChatChannel, chatClient: ChatClient, @@ -530,7 +539,8 @@ extension MessageAction { return unreadAction } - private static func markThreadAsUnreadAction( + /// The action to mark the thread as unread. + static func markThreadAsUnreadAction( messageController: ChatMessageController, message: ChatMessage, onFinish: @escaping (MessageActionInfo) -> Void, @@ -562,7 +572,8 @@ extension MessageAction { return unreadAction } - private static func muteAction( + /// The action to mute the user. + static func muteAction( for message: ChatMessage, channel: ChatChannel, chatClient: ChatClient, @@ -597,8 +608,9 @@ extension MessageAction { return muteUser } - - private static func blockUserAction( + + /// The action to block the user + static func blockUserAction( for message: ChatMessage, channel: ChatChannel, chatClient: ChatClient, @@ -638,7 +650,8 @@ extension MessageAction { return blockUser } - private static func unmuteAction( + /// The action to unmute the user. + static func unmuteAction( for message: ChatMessage, channel: ChatChannel, chatClient: ChatClient, @@ -673,8 +686,9 @@ extension MessageAction { return unmuteUser } - - private static func unblockUserAction( + + /// The action to unblock the user. + static func unblockUserAction( for message: ChatMessage, channel: ChatChannel, chatClient: ChatClient, @@ -714,7 +728,8 @@ extension MessageAction { return unblockUser } - private static func resendMessageAction( + /// The action to resend the message. + static func resendMessageAction( for message: ChatMessage, channel: ChatChannel, chatClient: ChatClient, @@ -753,7 +768,8 @@ extension MessageAction { return messageAction } - private static func messageNotSentActions( + /// The actions for a message that was not sent. + static func messageNotSentActions( for message: ChatMessage, channel: ChatChannel, chatClient: ChatClient, @@ -783,6 +799,8 @@ extension MessageAction { return messageActions } + // MARK: - Helpers + private static func editAndDeleteActions( for message: ChatMessage, channel: ChatChannel,