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