mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-19 16:13:42 +02:00
Reactions: we cannot like & dislike at the same time
This commit is contained in:
@@ -148,10 +148,42 @@ final class ReactionsMenuViewModel: ReactionsMenuViewModelType {
|
||||
self.coordinatorDelegate?.reactionsMenuViewModel(self, didSendReaction: reaction.rawValue, isAddReaction: false)
|
||||
}
|
||||
|
||||
if selected {
|
||||
self.ensure3StateButtons(withReaction: reaction)
|
||||
}
|
||||
|
||||
// TODO: to remove
|
||||
self.fakeToggleReaction(reaction: reaction)
|
||||
}
|
||||
|
||||
// We can like, dislike, be indifferent but we cannot like & dislike at the same time
|
||||
private func ensure3StateButtons(withReaction reaction: ReactionsMenuReaction) {
|
||||
var unreaction: ReactionsMenuReaction?
|
||||
|
||||
switch reaction {
|
||||
case .agree:
|
||||
if isDisagreeButtonSelected {
|
||||
unreaction = .disagree
|
||||
}
|
||||
case .disagree:
|
||||
if isAgreeButtonSelected {
|
||||
unreaction = .agree
|
||||
}
|
||||
case .like:
|
||||
if isDislikeButtonSelected {
|
||||
unreaction = .dislike
|
||||
}
|
||||
case .dislike:
|
||||
if isLikeButtonSelected {
|
||||
unreaction = .like
|
||||
}
|
||||
}
|
||||
|
||||
if let unreaction = unreaction {
|
||||
self.react(withReaction: unreaction, selected: false)
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: to remove
|
||||
private func fakeToggleReaction(reaction: ReactionsMenuReaction) {
|
||||
switch reaction {
|
||||
@@ -167,5 +199,4 @@ final class ReactionsMenuViewModel: ReactionsMenuViewModelType {
|
||||
|
||||
self.viewDelegate?.reactionsMenuViewModelDidUpdate(self)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user