Hide keyboard on tap, more robust search algorithm, option to search by dictionary word or definition
This commit is contained in:
@@ -7,11 +7,19 @@
|
||||
|
||||
import SwiftUI
|
||||
|
||||
enum SearchMode {
|
||||
case Dictionary
|
||||
case Definitions
|
||||
}
|
||||
|
||||
struct DictionaryView: View {
|
||||
@ObservedObject var tokiDictViewModel = TokiDictionaryViewModel()
|
||||
|
||||
@State private var tokiInput: String = ""
|
||||
@State private var selectedPartOfSpeech: String?
|
||||
@State var searchMode: SearchMode = .Dictionary
|
||||
|
||||
@FocusState private var searchInputIsForuced: Bool
|
||||
|
||||
var body: some View {
|
||||
VStack {
|
||||
@@ -21,8 +29,22 @@ struct DictionaryView: View {
|
||||
.disableAutocorrection(true)
|
||||
.padding(8)
|
||||
.onSubmit {
|
||||
tokiDictViewModel.filterDictionary(tokiInput)
|
||||
filterByInput()
|
||||
//tokiDictViewModel.filterDictionaryEnglishMode(tokiInput)
|
||||
}
|
||||
Picker("Language", selection: $searchMode) {
|
||||
Text("Dictionary").tag(SearchMode.Dictionary)
|
||||
Text("Definitions").tag(SearchMode.Definitions)
|
||||
}
|
||||
.pickerStyle(SegmentedPickerStyle())
|
||||
.onTapGesture {
|
||||
if self.searchMode == SearchMode.Dictionary {
|
||||
self.searchMode = SearchMode.Definitions
|
||||
} else {
|
||||
self.searchMode = SearchMode.Dictionary
|
||||
}
|
||||
filterByInput()
|
||||
}
|
||||
List(tokiDictViewModel.dictionary, id: \.word) { entry in
|
||||
TokiWordsListEntryView(entry: entry, selectedPartOfSpeech: $selectedPartOfSpeech)
|
||||
}
|
||||
@@ -30,12 +52,25 @@ struct DictionaryView: View {
|
||||
PartsOfSpeechView(selectedPartOfSpeech: selectedPOS)
|
||||
}
|
||||
.onChange(of: tokiInput) { newValue in
|
||||
tokiDictViewModel.filterDictionaryEnglishMode(newValue)
|
||||
filterByInput()
|
||||
//tokiDictViewModel.filterDictionaryEnglishMode(newValue)
|
||||
}
|
||||
}
|
||||
.onTapGesture {
|
||||
hideKeyboard()
|
||||
}
|
||||
}
|
||||
|
||||
func filterByInput() {
|
||||
if self.searchMode == SearchMode.Dictionary {
|
||||
tokiDictViewModel.filterDictionary(tokiInput)
|
||||
} else {
|
||||
tokiDictViewModel.filterDictionaryEnglishMode(tokiInput)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
struct DictionaryView_Previews: PreviewProvider {
|
||||
|
||||
static var previews: some View {
|
||||
|
@@ -53,6 +53,9 @@ struct TranslatorView: View {
|
||||
.onChange(of: tokiInput) { newValue in
|
||||
tokiDictViewModel.translatePhrase(newValue)
|
||||
}
|
||||
.onTapGesture {
|
||||
hideKeyboard()
|
||||
}
|
||||
}
|
||||
|
||||
func changeTranslationDirection() {
|
||||
|
Reference in New Issue
Block a user