ReactionsSettingsView.swift (1560B)
1 // 2 // ReactionsSettingsView.swift 3 // damus 4 // 5 // Created by Suhail Saqan on 7/3/23. 6 // 7 8 import SwiftUI 9 import EmojiPicker 10 import EmojiKit 11 12 struct ReactionsSettingsView: View { 13 @ObservedObject var settings: UserSettingsStore 14 let damus_state: DamusState 15 @State private var isReactionsVisible: Bool = false 16 17 @State private var selectedEmoji: Emoji? = nil 18 19 var body: some View { 20 Form { 21 Section { 22 Text(settings.default_emoji_reaction) 23 .onTapGesture { 24 isReactionsVisible = true 25 } 26 } header: { 27 Text("Select default emoji", comment: "Prompt selection of user's default emoji reaction") 28 } 29 } 30 .navigationTitle(NSLocalizedString("Reactions", comment: "Title of emoji reactions view")) 31 .navigationBarTitleDisplayMode(.large) 32 .sheet(isPresented: $isReactionsVisible) { 33 NavigationView { 34 EmojiPickerView(selectedEmoji: $selectedEmoji, emojiProvider: damus_state.emoji_provider) 35 } 36 .presentationDetents([.medium, .large]) 37 } 38 .onChange(of: selectedEmoji) { newEmoji in 39 guard let newEmoji else { 40 return 41 } 42 settings.default_emoji_reaction = newEmoji.value 43 } 44 } 45 } 46 47 struct ReactionsSettingsView_Previews: PreviewProvider { 48 static var previews: some View { 49 ReactionsSettingsView(settings: UserSettingsStore(), damus_state: test_damus_state) 50 } 51 }