From ce7c4772182540ff91dc95250582cd29f2544009 Mon Sep 17 00:00:00 2001 From: lingdocs <71590811+lingdocs@users.noreply.github.com> Date: Mon, 12 Sep 2022 18:07:22 +0400 Subject: [PATCH] added negative to imperative verbs quiz --- package.json | 2 +- src/games/sub-cores/VerbGame.tsx | 23 ++++++++++++++++++----- yarn.lock | 8 ++++---- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 0f0ce9a..6eb42ca 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "@formkit/auto-animate": "^1.0.0-beta.1", "@fortawesome/fontawesome-free": "^5.15.4", "@lingdocs/lingdocs-main": "^0.3.3", - "@lingdocs/pashto-inflector": "^3.8.9", + "@lingdocs/pashto-inflector": "^3.9.0", "@testing-library/jest-dom": "^5.11.4", "@testing-library/react": "^11.1.0", "@testing-library/user-event": "^12.1.10", diff --git a/src/games/sub-cores/VerbGame.tsx b/src/games/sub-cores/VerbGame.tsx index 43e07e7..9ded7b9 100644 --- a/src/games/sub-cores/VerbGame.tsx +++ b/src/games/sub-cores/VerbGame.tsx @@ -35,6 +35,7 @@ import { baParticle } from "@lingdocs/pashto-inflector/dist/lib/grammar-units"; import { intransitivePastVerbs } from "../../content/verbs/basic-present-verbs"; import { makePool } from "../../lib/pool"; import { wordQuery } from "../../words/words"; +import { isImperativeTense } from "@lingdocs/pashto-inflector/dist/lib/type-predicates"; const kidsColor = "#017BFE"; @@ -198,7 +199,7 @@ const VerbGame: GameSubCore = ({ id, link, level, inChapter }: { VP, { removeKing: false, shrinkServant: false }, true, - { ba: true, verb: true }, + { ba: true, verb: true, negative: true }, ); const phrase = { ps: compiled.ps, @@ -329,7 +330,9 @@ function QuestionDisplay({ question, userAnswer }: { {x} )} } -
{humanReadableVerbForm(v.block.tense)}
+
{(isImperativeTense(v.block.tense) && v.block.negative) + ? "Negative Imperative" + : humanReadableVerbForm(v.block.tense)}
; } @@ -451,6 +454,9 @@ function makeVPS({ verb, king, servant, tense, defaultTransitivity }: { ...vps, verb: { ...vps.verb, + negative: isImperativeTense(tense) + ? randFromArray([false, false, true]) + : false, transitivity, tense, }, @@ -479,10 +485,17 @@ function makeVPS({ verb, king, servant, tense, defaultTransitivity }: { function getVerbPs({ blocks }: T.VPRendered): T.PsString[] { const { perfectiveHead, verb } = blockUtils.getVerbAndHeadFromBlocks(blocks); - if (!perfectiveHead) { - return flattenLengths(verb.block.ps); + const mU = blocks[0].find(b => b.block.type === "negative" && b.block.imperative); + function vBase() { + if (!perfectiveHead) { + return flattenLengths(verb.block.ps); + } + return flattenLengths(verb.block.ps).map(r => concatPsString(perfectiveHead.ps, r)); } - return flattenLengths(verb.block.ps).map(r => concatPsString(perfectiveHead.ps, r)); + if (mU) { + return vBase().map(b => concatPsString({ p: "مه", f: "mÚ" }, " ", b)); + } + return vBase(); } function verbHasBa({ blocks }: T.VPRendered): boolean { diff --git a/yarn.lock b/yarn.lock index fcb9010..3e0273e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1804,10 +1804,10 @@ rambda "^6.7.0" react-select "^5.2.2" -"@lingdocs/pashto-inflector@^3.8.9": - version "3.8.9" - resolved "https://npm.lingdocs.com/@lingdocs%2fpashto-inflector/-/pashto-inflector-3.8.9.tgz#c023449dc13dbc32ef95cef172a68b5b0b4659bf" - integrity sha512-60hAao+ADerI5hOMeJzYmrSCliwTqCndbUlx1Ke58s2FikxDqUb9/wb700JVbhsVLyRdr6tGg+YslDf4irr5tA== +"@lingdocs/pashto-inflector@^3.9.0": + version "3.9.0" + resolved "https://npm.lingdocs.com/@lingdocs%2fpashto-inflector/-/pashto-inflector-3.9.0.tgz#abcea34db1d7031e7915c1bc6281b88df6c8ca2b" + integrity sha512-6KARwTVmt/qJaOrvIbQlQhIfseB0sM9HrfWGpkRUQZK4eGmo6Qpnne8PBJQe1CQZCuAKgDjpwDHz3CssFIOegA== dependencies: "@formkit/auto-animate" "^1.0.0-beta.1" classnames "^2.2.6"