diff --git a/src/components/Chapter.js b/src/components/Chapter.js
index 83f4439..789b4c5 100644
--- a/src/components/Chapter.js
+++ b/src/components/Chapter.js
@@ -36,7 +36,7 @@ const Chapter = ({ children: chapter }) => {
-
+ {!chapter.frontMatter.fullWidth && }
>;
};
diff --git a/src/components/VerbPicker.tsx b/src/components/VerbPicker.tsx
index 955fc1b..f600e5f 100644
--- a/src/components/VerbPicker.tsx
+++ b/src/components/VerbPicker.tsx
@@ -34,14 +34,14 @@ function makeVerbSelection(verb: VerbEntry, oldVerbSelection?: VerbSelection): V
return oldVerbSelection.object;
}
// TODO: more complex types and unchangeable dynamic compound objects
- const verbType: "intrans" | "trans" | "gramm trans" = verb.entry.c?.includes("v. intrans.")
- ? "intrans"
+ const transitivity: "intransitive" | "transitive" | "grammaticallyTransitive" = verb.entry.c?.includes("v. intrans.")
+ ? "intransitive"
: verb.entry.c?.includes("v. gramm. trans.")
- ? "gramm trans"
- : "trans";
- const object = verbType === "gramm trans"
+ ? "grammaticallyTransitive"
+ : "transitive";
+ const object = (transitivity === "grammaticallyTransitive")
? T.Person.ThirdPlurMale
- : verbType === "trans"
+ : transitivity === "transitive"
? getTransObjFromOldVerbSelection()
: "none";
return {
@@ -49,7 +49,17 @@ function makeVerbSelection(verb: VerbEntry, oldVerbSelection?: VerbSelection): V
verb,
tense: oldVerbSelection ? oldVerbSelection.tense : "present",
object,
+ transitivity,
negative: oldVerbSelection ? oldVerbSelection.negative : false,
+ ...verb.entry.c?.includes("v. trans./gramm. trans") ? {
+ changeTransitivity: function (t) {
+ return {
+ ...this,
+ transitivity: t,
+ object: t === "grammaticallyTransitive" ? T.Person.ThirdPlurMale : undefined,
+ };
+ },
+ } : {},
};
}
@@ -79,6 +89,14 @@ function VerbPicker({ onChange, verb, verbs }: { verbs: VerbEntry[], verb: VerbS
});
}
}
+ function notInstransitive(t: "transitive" | "intransitive" | "grammaticallyTransitive"): "transitive" | "grammaticallyTransitive" {
+ return t === "intransitive" ? "transitive" : t;
+ }
+ function handleChangeTransitivity(t: "transitive" | "grammaticallyTransitive") {
+ if (verb && verb.changeTransitivity) {
+ onChange(verb.changeTransitivity(t));
+ }
+ }
return
}
+ {verb && verb.changeTransitivity &&
+
+
}
;
}
diff --git a/src/components/phrase-builder/ObjectDisplay.tsx b/src/components/phrase-builder/ObjectDisplay.tsx
index 1bb03da..d2f69b4 100644
--- a/src/components/phrase-builder/ObjectDisplay.tsx
+++ b/src/components/phrase-builder/ObjectDisplay.tsx
@@ -1,9 +1,15 @@
import NPPicker from "../np-picker/NPPicker";
-function ObjectDisplay({ object, onChange, counterPart }: { object: Exclude, onChange: (o: NPSelection | undefined) => void, counterPart: NPSelection | undefined }) {
- return (typeof object === "number")
- ? Unspoken 3rd Pers. Masc. Plur.
- : ;
+function ObjectDisplay({ object, onChange, counterPart }: {
+ object: Exclude,
+ onChange: (o: NPSelection | undefined) => void,
+ counterPart: NPSelection | undefined },
+) {
+ return
+ {(typeof object === "number")
+ ?
Unspoken 3rd Pers. Masc. Plur.
+ :
}
+
;
}
export default ObjectDisplay;
diff --git a/src/components/phrase-builder/PhraseBuilder.tsx b/src/components/phrase-builder/PhraseBuilder.tsx
index 0f40184..1e0dcf1 100644
--- a/src/components/phrase-builder/PhraseBuilder.tsx
+++ b/src/components/phrase-builder/PhraseBuilder.tsx
@@ -92,7 +92,7 @@ export function PhraseBuilder() {
}
const verbPhrase: VPSelection | undefined = verbPhraseComplete({ subject, verb });
const VPRendered = verbPhrase && renderVP(verbPhrase);
- return
+ return
{kingEmoji} =
king of phrase
{servantEmoji} =
servant of phrase
diff --git a/src/content/practice-tools/phrase-builder.mdx b/src/content/practice-tools/phrase-builder.mdx
index 099245b..2949a3e 100644
--- a/src/content/practice-tools/phrase-builder.mdx
+++ b/src/content/practice-tools/phrase-builder.mdx
@@ -1,5 +1,6 @@
---
title: Phrase Builder
+fullWidth: true
---
import PhraseBuilder from "../../components/phrase-builder/PhraseBuilder";
diff --git a/src/types/gen-g.d.ts b/src/types/gen-g.d.ts
index 9b8a371..7351d01 100644
--- a/src/types/gen-g.d.ts
+++ b/src/types/gen-g.d.ts
@@ -32,6 +32,8 @@ type VerbSelection = {
verb: VerbEntry,
tense: VerbTense,
object: VerbObject,
+ transitivity: "transitive" | "intransitive" | "grammaticallyTransitive",
+ changeTransitivity?: (t: "transitive" | "grammaticallyTransitive") => VerbSelection,
// TODO: add in perfective element here??
negative: boolean,
};
@@ -54,7 +56,7 @@ type VerbObject =
NPSelection |
// grammatically transitive verb with unspoken 3rd pers masc plur entity
// or intransitive "none"
- ObjectNP
+ ObjectNP;
type NPSelection = NounSelection | PronounSelection | ParticipleSelection;