mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-04 19:44:05 +00:00
Fix the emoji picker's title when setting a custom status. (#6039)
This commit is contained in:
@@ -1149,7 +1149,8 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
|
|||||||
private func presentEmojiPicker(selectedEmojis: Set<String>,
|
private func presentEmojiPicker(selectedEmojis: Set<String>,
|
||||||
emojiPickerContinuation: EmojiPickerScreenContinuation,
|
emojiPickerContinuation: EmojiPickerScreenContinuation,
|
||||||
animated: Bool) {
|
animated: Bool) {
|
||||||
let params = EmojiPickerScreenCoordinatorParameters(selectedEmojis: selectedEmojis,
|
let params = EmojiPickerScreenCoordinatorParameters(mode: .reaction,
|
||||||
|
selectedEmojis: selectedEmojis,
|
||||||
emojiProvider: flowParameters.emojiProvider,
|
emojiProvider: flowParameters.emojiProvider,
|
||||||
continuation: emojiPickerContinuation)
|
continuation: emojiPickerContinuation)
|
||||||
let coordinator = EmojiPickerScreenCoordinator(parameters: params)
|
let coordinator = EmojiPickerScreenCoordinator(parameters: params)
|
||||||
|
|||||||
@@ -162,7 +162,8 @@ class SettingsFlowCoordinator: FlowCoordinatorProtocol {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private func presentEmojiPicker(emojiPickerContinuation: EmojiPickerScreenContinuation) {
|
private func presentEmojiPicker(emojiPickerContinuation: EmojiPickerScreenContinuation) {
|
||||||
let coordinator = EmojiPickerScreenCoordinator(parameters: .init(selectedEmojis: [],
|
let coordinator = EmojiPickerScreenCoordinator(parameters: .init(mode: .userStatus,
|
||||||
|
selectedEmojis: [],
|
||||||
emojiProvider: flowParameters.emojiProvider,
|
emojiProvider: flowParameters.emojiProvider,
|
||||||
continuation: emojiPickerContinuation))
|
continuation: emojiPickerContinuation))
|
||||||
coordinator.actions
|
coordinator.actions
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import Combine
|
|||||||
import SwiftUI
|
import SwiftUI
|
||||||
|
|
||||||
struct EmojiPickerScreenCoordinatorParameters {
|
struct EmojiPickerScreenCoordinatorParameters {
|
||||||
|
let mode: EmojiPickerScreenMode
|
||||||
/// Any emojis that should be displayed as already selected.
|
/// Any emojis that should be displayed as already selected.
|
||||||
let selectedEmojis: Set<String>
|
let selectedEmojis: Set<String>
|
||||||
let emojiProvider: EmojiProviderProtocol
|
let emojiProvider: EmojiProviderProtocol
|
||||||
@@ -32,7 +33,8 @@ final class EmojiPickerScreenCoordinator: CoordinatorProtocol {
|
|||||||
}
|
}
|
||||||
|
|
||||||
init(parameters: EmojiPickerScreenCoordinatorParameters) {
|
init(parameters: EmojiPickerScreenCoordinatorParameters) {
|
||||||
viewModel = EmojiPickerScreenViewModel(selectedEmojis: parameters.selectedEmojis,
|
viewModel = EmojiPickerScreenViewModel(mode: parameters.mode,
|
||||||
|
selectedEmojis: parameters.selectedEmojis,
|
||||||
emojiProvider: parameters.emojiProvider,
|
emojiProvider: parameters.emojiProvider,
|
||||||
continuation: parameters.continuation)
|
continuation: parameters.continuation)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,14 +9,23 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
typealias EmojiPickerScreenContinuation = AsyncStream<String>.Continuation
|
typealias EmojiPickerScreenContinuation = AsyncStream<String>.Continuation
|
||||||
|
enum EmojiPickerScreenMode { case reaction, userStatus }
|
||||||
|
|
||||||
enum EmojiPickerScreenViewModelAction {
|
enum EmojiPickerScreenViewModelAction {
|
||||||
case dismiss
|
case dismiss
|
||||||
}
|
}
|
||||||
|
|
||||||
struct EmojiPickerScreenViewState: BindableState {
|
struct EmojiPickerScreenViewState: BindableState {
|
||||||
|
let mode: EmojiPickerScreenMode
|
||||||
var categories: [EmojiPickerEmojiCategoryViewData]
|
var categories: [EmojiPickerEmojiCategoryViewData]
|
||||||
var selectedEmojis: Set<String>
|
var selectedEmojis: Set<String>
|
||||||
|
|
||||||
|
var title: String {
|
||||||
|
switch mode {
|
||||||
|
case .reaction: L10n.commonReactions
|
||||||
|
case .userStatus: L10n.a11yCustomEmoji
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
enum EmojiPickerScreenViewAction {
|
enum EmojiPickerScreenViewAction {
|
||||||
|
|||||||
@@ -20,8 +20,11 @@ class EmojiPickerScreenViewModel: EmojiPickerScreenViewModelType, EmojiPickerScr
|
|||||||
actionsSubject.eraseToAnyPublisher()
|
actionsSubject.eraseToAnyPublisher()
|
||||||
}
|
}
|
||||||
|
|
||||||
init(selectedEmojis: Set<String>, emojiProvider: EmojiProviderProtocol, continuation: EmojiPickerScreenContinuation) {
|
init(mode: EmojiPickerScreenMode = .reaction,
|
||||||
let initialViewState = EmojiPickerScreenViewState(categories: [], selectedEmojis: selectedEmojis)
|
selectedEmojis: Set<String>,
|
||||||
|
emojiProvider: EmojiProviderProtocol,
|
||||||
|
continuation: EmojiPickerScreenContinuation) {
|
||||||
|
let initialViewState = EmojiPickerScreenViewState(mode: mode, categories: [], selectedEmojis: selectedEmojis)
|
||||||
self.emojiProvider = emojiProvider
|
self.emojiProvider = emojiProvider
|
||||||
self.continuation = continuation
|
self.continuation = continuation
|
||||||
super.init(initialViewState: initialViewState)
|
super.init(initialViewState: initialViewState)
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ struct EmojiPickerScreen: View {
|
|||||||
}
|
}
|
||||||
.padding(.horizontal, 6)
|
.padding(.horizontal, 6)
|
||||||
}
|
}
|
||||||
.navigationTitle(L10n.commonReactions)
|
.navigationTitle(context.viewState.title)
|
||||||
.navigationBarTitleDisplayMode(.inline)
|
.navigationBarTitleDisplayMode(.inline)
|
||||||
.toolbar { toolbar }
|
.toolbar { toolbar }
|
||||||
.isSearching($isSearching)
|
.isSearching($isSearching)
|
||||||
|
|||||||
Reference in New Issue
Block a user