Skip to content

Commit ce4dad2

Browse files
Implemented channel config for muting users
1 parent 723b7fa commit ce4dad2

File tree

3 files changed

+65
-51
lines changed

3 files changed

+65
-51
lines changed

Sources/StreamChatSwiftUI/ChatChannel/Composer/Suggestions/CommandsConfig.swift

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -33,23 +33,33 @@ public class DefaultCommandsConfig: CommandsConfig {
3333
public func makeCommandsHandler(
3434
with channelController: ChatChannelController
3535
) -> CommandsHandler {
36-
let mentionsCommand = MentionsCommandHandler(
36+
let mentionsCommandHandler = MentionsCommandHandler(
3737
channelController: channelController,
3838
commandSymbol: mentionsSymbol,
3939
mentionAllAppUsers: false
4040
)
41+
42+
var instantCommands = [CommandHandler]()
43+
4144
let giphyCommand = GiphyCommandHandler(commandSymbol: "/giphy")
42-
let muteCommand = MuteCommandHandler(
43-
channelController: channelController,
44-
commandSymbol: "/mute"
45-
)
46-
let unmuteCommand = UnmuteCommandHandler(
47-
channelController: channelController,
48-
commandSymbol: "/unmute"
49-
)
50-
let instantCommands = InstantCommandsHandler(
51-
commands: [giphyCommand, muteCommand, unmuteCommand]
45+
instantCommands.append(giphyCommand)
46+
47+
if channelController.channel?.config.mutesEnabled == true {
48+
let muteCommand = MuteCommandHandler(
49+
channelController: channelController,
50+
commandSymbol: "/mute"
51+
)
52+
let unmuteCommand = UnmuteCommandHandler(
53+
channelController: channelController,
54+
commandSymbol: "/unmute"
55+
)
56+
instantCommands.append(muteCommand)
57+
instantCommands.append(unmuteCommand)
58+
}
59+
60+
let instantCommandsHandler = InstantCommandsHandler(
61+
commands: instantCommands
5262
)
53-
return CommandsHandler(commands: [mentionsCommand, instantCommands])
63+
return CommandsHandler(commands: [mentionsCommandHandler, instantCommandsHandler])
5464
}
5565
}

Sources/StreamChatSwiftUI/ChatChannel/Reactions/MessageActions/DefaultMessageActions.swift

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -69,29 +69,31 @@ extension MessageAction {
6969

7070
messageActions.append(flagAction)
7171

72-
let author = message.author
73-
let currentUser = chatClient.currentUserController().currentUser
74-
let isMuted = currentUser?.mutedUsers.contains(message.author) ?? false
75-
if isMuted {
76-
let unmuteAction = unmuteAction(
77-
for: message,
78-
channel: channel,
79-
chatClient: chatClient,
80-
userToUnmute: author,
81-
onFinish: onFinish,
82-
onError: onError
83-
)
84-
messageActions.append(unmuteAction)
85-
} else {
86-
let muteAction = muteAction(
87-
for: message,
88-
channel: channel,
89-
chatClient: chatClient,
90-
userToMute: author,
91-
onFinish: onFinish,
92-
onError: onError
93-
)
94-
messageActions.append(muteAction)
72+
if channel.config.mutesEnabled {
73+
let author = message.author
74+
let currentUser = chatClient.currentUserController().currentUser
75+
let isMuted = currentUser?.mutedUsers.contains(message.author) ?? false
76+
if isMuted {
77+
let unmuteAction = unmuteAction(
78+
for: message,
79+
channel: channel,
80+
chatClient: chatClient,
81+
userToUnmute: author,
82+
onFinish: onFinish,
83+
onError: onError
84+
)
85+
messageActions.append(unmuteAction)
86+
} else {
87+
let muteAction = muteAction(
88+
for: message,
89+
channel: channel,
90+
chatClient: chatClient,
91+
userToMute: author,
92+
onFinish: onFinish,
93+
onError: onError
94+
)
95+
messageActions.append(muteAction)
96+
}
9597
}
9698
}
9799

Sources/StreamChatSwiftUI/ChatChannelList/DefaultChannelActions.swift

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -32,22 +32,24 @@ extension ChannelAction {
3232
actions.append(leaveGroup)
3333
}
3434

35-
if channel.isMuted {
36-
let unmuteUser = unmuteAction(
37-
for: channel,
38-
chatClient: chatClient,
39-
onDismiss: onDismiss,
40-
onError: onError
41-
)
42-
actions.append(unmuteUser)
43-
} else {
44-
let muteUser = muteAction(
45-
for: channel,
46-
chatClient: chatClient,
47-
onDismiss: onDismiss,
48-
onError: onError
49-
)
50-
actions.append(muteUser)
35+
if channel.config.mutesEnabled {
36+
if channel.isMuted {
37+
let unmuteUser = unmuteAction(
38+
for: channel,
39+
chatClient: chatClient,
40+
onDismiss: onDismiss,
41+
onError: onError
42+
)
43+
actions.append(unmuteUser)
44+
} else {
45+
let muteUser = muteAction(
46+
for: channel,
47+
chatClient: chatClient,
48+
onDismiss: onDismiss,
49+
onError: onError
50+
)
51+
actions.append(muteUser)
52+
}
5153
}
5254

5355
let deleteConversation = deleteAction(

0 commit comments

Comments
 (0)