damus

nostr ios client
git clone git://jb55.com/damus
Log | Files | Refs | README | LICENSE

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 }