diff --git a/Toki Trainer Widgets/Toki_Trainer_Widgets.swift b/Toki Trainer Widgets/Toki_Trainer_Widgets.swift index 133ed2f..b33bd22 100644 --- a/Toki Trainer Widgets/Toki_Trainer_Widgets.swift +++ b/Toki Trainer Widgets/Toki_Trainer_Widgets.swift @@ -54,7 +54,7 @@ struct DefinitionEntry: TimelineEntry { struct Toki_Trainer_WidgetsEntryView : View { var entry: Provider.Entry - + var body: some View { ZStack { Color("LightPurple") @@ -62,9 +62,11 @@ struct Toki_Trainer_WidgetsEntryView : View { Text(entry.word) .foregroundColor(Color("FontColorTitle")) .font(.title) + .frame(maxWidth: .infinity, alignment: .topLeading) .padding(8) Text(entry.definition) .foregroundColor(Color("FontColorSubtitle")) + .frame(maxWidth: .infinity, alignment: .leading) .padding(8) } } diff --git a/Toki Trainer.xcodeproj/xcuserdata/madelinecr.xcuserdatad/xcschemes/xcschememanagement.plist b/Toki Trainer.xcodeproj/xcuserdata/madelinecr.xcuserdatad/xcschemes/xcschememanagement.plist index 4153716..61554bf 100644 --- a/Toki Trainer.xcodeproj/xcuserdata/madelinecr.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/Toki Trainer.xcodeproj/xcuserdata/madelinecr.xcuserdatad/xcschemes/xcschememanagement.plist @@ -7,12 +7,12 @@ Toki Trainer WidgetsExtension.xcscheme_^#shared#^_ orderHint - 0 + 1 Toki Trainer.xcscheme_^#shared#^_ orderHint - 1 + 0 diff --git a/Toki Trainer/ViewModels/TokiDictionaryViewModel.swift b/Toki Trainer/ViewModels/TokiDictionaryViewModel.swift index b610041..2ccbb02 100644 --- a/Toki Trainer/ViewModels/TokiDictionaryViewModel.swift +++ b/Toki Trainer/ViewModels/TokiDictionaryViewModel.swift @@ -40,6 +40,32 @@ class TokiDictionaryViewModel: ObservableObject { } } + func filterDictionaryEnglishMode(_ input: String) { + dictionary = [] + + for value in fullDictionary { + + var entryMatch = false + + // Check if word matches toki pona form, even partially + if value.word.hasPrefix(input) { + entryMatch = true + } + + // Check if any part of the word definitions match in English, even partially + for definition in value.definitions { + if definition.definition.contains(input) { + entryMatch = true + } + } + + // Add to dictionary + if entryMatch == true { + dictionary.append(value) + } + } + } + func translatePhrase(_ input: String) { dictionary = [] translatedDictionary = [] diff --git a/Toki Trainer/Views/WordListViews/DictionaryView.swift b/Toki Trainer/Views/WordListViews/DictionaryView.swift index 6067791..84453a2 100644 --- a/Toki Trainer/Views/WordListViews/DictionaryView.swift +++ b/Toki Trainer/Views/WordListViews/DictionaryView.swift @@ -10,8 +10,8 @@ import SwiftUI struct DictionaryView: View { @ObservedObject var tokiDictViewModel = TokiDictionaryViewModel() - @State var tokiInput: String = "" - @State var selectedPartOfSpeech: String? + @State private var tokiInput: String = "" + @State private var selectedPartOfSpeech: String? var body: some View { VStack { @@ -30,7 +30,7 @@ struct DictionaryView: View { PartsOfSpeechView(selectedPartOfSpeech: selectedPOS) } .onChange(of: tokiInput) { newValue in - tokiDictViewModel.filterDictionary(newValue) + tokiDictViewModel.filterDictionaryEnglishMode(newValue) } } } @@ -39,6 +39,6 @@ struct DictionaryView: View { struct DictionaryView_Previews: PreviewProvider { static var previews: some View { - DictionaryView(selectedPartOfSpeech: "n").previewLayout(.sizeThatFits).environment(\.managedObjectContext, PersistenceController.preview.container.viewContext) + DictionaryView().previewLayout(.sizeThatFits).environment(\.managedObjectContext, PersistenceController.preview.container.viewContext) } } diff --git a/Toki Trainer/Views/WordListViews/TranslatorView.swift b/Toki Trainer/Views/WordListViews/TranslatorView.swift index 11de7eb..a0199b3 100644 --- a/Toki Trainer/Views/WordListViews/TranslatorView.swift +++ b/Toki Trainer/Views/WordListViews/TranslatorView.swift @@ -15,14 +15,14 @@ struct TranslatorView: View { var body: some View { VStack { - Button(action: changeTranslationDirection) { - // TODO: This needs to actually switch how the lookup happens - if translateToTokiPona == true { - LanguageDirectionView(from: "English", to: "Toki Pona", fromColor: .blue, toColor: .cyan) - } else { - LanguageDirectionView(from: "Toki Pona", to: "English", fromColor: .cyan, toColor: .blue) - } - } +// Button(action: changeTranslationDirection) { +// #warning("This needs to actually switch how the lookup happens") +// if translateToTokiPona == true { +// LanguageDirectionView(from: "English", to: "Toki Pona", fromColor: .blue, toColor: .cyan) +// } else { +// LanguageDirectionView(from: "Toki Pona", to: "English", fromColor: .cyan, toColor: .blue) +// } +// } TextField("Enter Toki Pona Word or Phrase", text: $tokiInput) .multilineTextAlignment(.center) .textInputAutocapitalization(.never)