From 1bc735d809278eea732c19d4c25a8e056d87803b Mon Sep 17 00:00:00 2001 From: lingdocs <71590811+lingdocs@users.noreply.github.com> Date: Thu, 7 Apr 2022 14:52:31 +0500 Subject: [PATCH] charts added in verb explorer --- src/components/EntrySelect.tsx | 7 +- src/components/VerbPicker.tsx | 5 +- src/components/VerbPickerBelow.tsx | 179 ------------------ src/components/np-picker/NPNounPicker.tsx | 5 +- .../np-picker/NPParticiplePicker.tsx | 7 +- src/components/np-picker/NPPicker.tsx | 9 +- src/components/np-picker/NPPronounPicker.tsx | 3 +- src/components/np-picker/picker-tools.ts | 73 ------- .../phrase-builder/PhraseBuilder.tsx | 80 +++++--- src/components/phrase-builder/VPDisplay.tsx | 13 +- src/lib/phrase-building/render-vp.ts | 79 +------- src/lib/phrase-building/vp-tools.ts | 79 ++++++++ 12 files changed, 168 insertions(+), 371 deletions(-) delete mode 100644 src/components/VerbPickerBelow.tsx delete mode 100644 src/components/np-picker/picker-tools.ts diff --git a/src/components/EntrySelect.tsx b/src/components/EntrySelect.tsx index d567d4f..e9bc429 100644 --- a/src/components/EntrySelect.tsx +++ b/src/components/EntrySelect.tsx @@ -14,6 +14,7 @@ function EntrySelect(props: { onChange: (value: E | undefined) => void, name: string | undefined, isVerbSelect?: boolean, + opts: T.TextOptions, }) { const options = props.entries .sort((a, b) => { @@ -24,11 +25,11 @@ function EntrySelect(props: { }) .map((e) => { if ("entry" in e) { - return (props.isVerbSelect ? makeVerbSelectOption : makeSelectOption)(e); + return (props.isVerbSelect ? makeVerbSelectOption : makeSelectOption)(e, props.opts); } - return makeSelectOption(e); + return makeSelectOption(e, props.opts); }); - function onSelect(v: { label: string, value: string } | null) { + function onSelect(v: { label: string | JSX.Element, value: string } | null) { if (!v) { props.onChange(undefined); return; diff --git a/src/components/VerbPicker.tsx b/src/components/VerbPicker.tsx index 153716a..1f6edc4 100644 --- a/src/components/VerbPicker.tsx +++ b/src/components/VerbPicker.tsx @@ -1,5 +1,6 @@ import { ButtonSelect, + Types as T, } from "@lingdocs/pashto-inflector"; import { makeVerbSelection, @@ -8,12 +9,13 @@ import EntrySelect from "./EntrySelect"; // TODO: dark on past tense selecitons -function VerbPicker({ onChange, subject, changeSubject, verb, verbs }: { +function VerbPicker({ onChange, subject, changeSubject, verb, verbs, opts }: { verbs: VerbEntry[], verb: VerbSelection | undefined, subject: NPSelection | undefined, onChange: (p: VerbSelection | undefined) => void, changeSubject: (p: NPSelection | undefined) => void, + opts: T.TextOptions, }) { // const [filters, useFilters] = useState({ // stative: true, @@ -62,6 +64,7 @@ function VerbPicker({ onChange, subject, changeSubject, verb, verbs }: { onChange={onVerbSelect} name="Verb" isVerbSelect + opts={opts} />
diff --git a/src/components/VerbPickerBelow.tsx b/src/components/VerbPickerBelow.tsx deleted file mode 100644 index d455a8c..0000000 --- a/src/components/VerbPickerBelow.tsx +++ /dev/null @@ -1,179 +0,0 @@ -import Select from "react-select"; -import { - zIndexProps, -} from "./np-picker/picker-tools"; -import { - ButtonSelect, -} from "@lingdocs/pashto-inflector"; -import { isPerfectTense } from "../lib/phrase-building/vp-tools"; - -const tenseOptions: { label: string | JSX.Element, value: VerbTense }[] = [{ - label:
present
, - value: "presentVerb", -}, { - label:
subjunctive
, - value: "subjunctiveVerb", -}, { - label:
imperf. future
, - value: "imperfectiveFuture", -}, { - label:
perf. future
, - value: "perfectiveFuture", -}, { - label:
continuous past
, - value: "imperfectivePast", -}, { - label:
simple past
, - value: "perfectivePast", -}, { - label:
habitual cont. past.
, - value: "habitualImperfectivePast", -}, { - label:
habitual simp. past.
, - value: "habitualPerfectivePast", -}]; - -const perfectTenseOptions: { label: string | JSX.Element, value: PerfectTense }[] = [{ - label: "Present Perfect", - value: "present perfect", -}, { - label: "Habitual Perfect", - value: "habitual perfect", -}, { - label: "Subjunctive Perfect", - value: "subjunctive perfect", -}, { - label: "Future Perfect", - value: "future perfect", -}, { - label: "Past Perfect", - value: "past perfect", -}, { - label: `"Would Be" Perfect`, - value: "wouldBe perfect", -}, { - label: "Past Subjunctive Perfect", - value: "pastSubjunctive perfect", -}]; - -function VerbPickerBelow({ onChange, verb }: { - verbs: VerbEntry[], - verb: VerbSelection | undefined, - onChange: (p: VerbSelection | undefined) => void, -}) { - function onTenseSelect(o: { value: VerbTense | PerfectTense } | null) { - const value = o?.value ? o.value : undefined; - if (verb && value) { - if (isPerfectTense(value)) { - onChange({ - ...verb, - tense: value, - tenseCategory: "perfect", - }); - } else { - onChange({ - ...verb, - tense: value, - tenseCategory: verb.tenseCategory === "perfect" ? "basic" : verb.tenseCategory, - }); - } - } - } - function moveTense(dir: "forward" | "back") { - if (!verb) return; - return () => { - const tenses = verb.tenseCategory === "perfect" ? perfectTenseOptions : tenseOptions; - const currIndex = tenses.findIndex(tn => tn.value === verb.tense) - if (currIndex === -1) { - console.error("error moving tense", dir); - return; - } - const newIndex = dir === "forward" - ? ((currIndex + 1) % tenses.length) - : (currIndex === 0 ? (tenses.length - 1) : (currIndex - 1)) - const newTense = tenses[newIndex]; - onTenseSelect(newTense); - }; - } - function onPosNegSelect(value: string) { - if (verb) { - onChange({ - ...verb, - negative: value === "true", - }); - } - } - function onTenseCategorySelect(value: "basic" | "modal" | "perfect") { - if (verb) { - if (value === "perfect") { - onChange({ - ...verb, - tenseCategory: value, - tense: isPerfectTense(verb.tense) ? verb.tense : "present perfect", - }); - } else { - onChange({ - ...verb, - tenseCategory: value, - tense: isPerfectTense(verb.tense) ? "presentVerb" : verb.tense, - }); - } - } - } - const tOptions = (verb?.tenseCategory === "perfect") ? perfectTenseOptions : tenseOptions; - return
-
-
-
Tense:
- {verb &&
- -
} -
-