Files
damus/damus/Views/Settings/ReactionsSettingsView.swift
Terry Yiu 9172102f4d Revamp emoji picker to be less error-prone and add search, frequently used, and multiple skin tone support capabilities
Changelog-Added: Revamp emoji picker to be less error-prone and add search, frequently used, and multiple skin tone support capabilities
2024-06-17 23:53:19 -04:00

52 lines
1.5 KiB
Swift

//
// ReactionsSettingsView.swift
// damus
//
// Created by Suhail Saqan on 7/3/23.
//
import SwiftUI
import EmojiPicker
import EmojiKit
struct ReactionsSettingsView: View {
@ObservedObject var settings: UserSettingsStore
let damus_state: DamusState
@State private var isReactionsVisible: Bool = false
@State private var selectedEmoji: Emoji? = nil
var body: some View {
Form {
Section {
Text(settings.default_emoji_reaction)
.onTapGesture {
isReactionsVisible = true
}
} header: {
Text("Select default emoji", comment: "Prompt selection of user's default emoji reaction")
}
}
.navigationTitle(NSLocalizedString("Reactions", comment: "Title of emoji reactions view"))
.navigationBarTitleDisplayMode(.large)
.sheet(isPresented: $isReactionsVisible) {
NavigationView {
EmojiPickerView(selectedEmoji: $selectedEmoji, emojiProvider: damus_state.emoji_provider)
}
.presentationDetents([.medium, .large])
}
.onChange(of: selectedEmoji) { newEmoji in
guard let newEmoji else {
return
}
settings.default_emoji_reaction = newEmoji.value
}
}
}
struct ReactionsSettingsView_Previews: PreviewProvider {
static var previews: some View {
ReactionsSettingsView(settings: UserSettingsStore(), damus_state: test_damus_state)
}
}