stat/dyn choice
This commit is contained in:
parent
90fec81da9
commit
4d7fec9813
|
@ -85,7 +85,12 @@ function VerbPicker({ onChange, verb, verbs }: { verbs: VerbEntry[], verb: VerbS
|
||||||
if (verb && verb.changeTransitivity) {
|
if (verb && verb.changeTransitivity) {
|
||||||
onChange(verb.changeTransitivity(t));
|
onChange(verb.changeTransitivity(t));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
function handleChangeStatDyn(c: "stative" | "dynamic") {
|
||||||
|
if (verb && verb.changeStatDyn) {
|
||||||
|
onChange(verb.changeStatDyn(c));
|
||||||
|
}
|
||||||
|
}
|
||||||
return <div style={{ maxWidth: "225px", minWidth: "125px" }}>
|
return <div style={{ maxWidth: "225px", minWidth: "125px" }}>
|
||||||
<div>Verb:</div>
|
<div>Verb:</div>
|
||||||
<Select
|
<Select
|
||||||
|
@ -140,6 +145,20 @@ function VerbPicker({ onChange, verb, verbs }: { verbs: VerbEntry[], verb: VerbS
|
||||||
handleChange={handleChangeTransitivity}
|
handleChange={handleChangeTransitivity}
|
||||||
/>
|
/>
|
||||||
</div>}
|
</div>}
|
||||||
|
{verb && verb.changeStatDyn && <div className="text-center">
|
||||||
|
<ButtonSelect
|
||||||
|
small
|
||||||
|
options={[{
|
||||||
|
label: "stative",
|
||||||
|
value: "stative",
|
||||||
|
}, {
|
||||||
|
label: "dynamic",
|
||||||
|
value: "dynamic",
|
||||||
|
}]}
|
||||||
|
value={verb.isCompound ? verb.isCompound : "stative"}
|
||||||
|
handleChange={handleChangeStatDyn}
|
||||||
|
/>
|
||||||
|
</div>}
|
||||||
</div>;
|
</div>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -170,6 +189,7 @@ function makeVerbSelection(verb: VerbEntry, oldVerbSelection?: VerbSelection): V
|
||||||
: info.type === "dynamic compound"
|
: info.type === "dynamic compound"
|
||||||
? "dynamic"
|
? "dynamic"
|
||||||
: false;
|
: false;
|
||||||
|
// TODO: here and below in the changeStatDyn function ... allow for entries with complement
|
||||||
const dynAuxVerb: VerbEntry | undefined = isCompound !== "dynamic"
|
const dynAuxVerb: VerbEntry | undefined = isCompound !== "dynamic"
|
||||||
? undefined
|
? undefined
|
||||||
: info.type === "dynamic compound"
|
: info.type === "dynamic compound"
|
||||||
|
@ -195,6 +215,20 @@ function makeVerbSelection(verb: VerbEntry, oldVerbSelection?: VerbSelection): V
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
} : {},
|
} : {},
|
||||||
|
...("stative" in info) ? {
|
||||||
|
changeStatDyn: function (c) {
|
||||||
|
return {
|
||||||
|
...this,
|
||||||
|
isCompound: c,
|
||||||
|
object: c === "dynamic"
|
||||||
|
? makeNounSelection(info.dynamic.objComplement.entry as NounEntry, true)
|
||||||
|
: undefined,
|
||||||
|
dynAuxVerb: c === "dynamic"
|
||||||
|
? { entry: info.dynamic.auxVerb } as VerbEntry
|
||||||
|
: undefined,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
} : {},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ import NPPicker from "../np-picker/NPPicker";
|
||||||
import VerbPicker from "../VerbPicker";
|
import VerbPicker from "../VerbPicker";
|
||||||
import VPDisplay from "./VPDisplay";
|
import VPDisplay from "./VPDisplay";
|
||||||
import ObjectDisplay from "./ObjectDisplay";
|
import ObjectDisplay from "./ObjectDisplay";
|
||||||
import { verbs as verbsRaw } from "../../words/words";
|
import { verbs } from "../../words/words";
|
||||||
import { renderVP } from "../../lib/phrase-building";
|
import { renderVP } from "../../lib/phrase-building";
|
||||||
import {
|
import {
|
||||||
isInvalidSubjObjCombo,
|
isInvalidSubjObjCombo,
|
||||||
|
@ -11,7 +11,6 @@ import {
|
||||||
|
|
||||||
const kingEmoji = "👑";
|
const kingEmoji = "👑";
|
||||||
const servantEmoji = "🙇♂️";
|
const servantEmoji = "🙇♂️";
|
||||||
const verbs = verbsRaw;
|
|
||||||
|
|
||||||
// TODO: Ability to choose stative/dynamic compounds when both work
|
// TODO: Ability to choose stative/dynamic compounds when both work
|
||||||
|
|
||||||
|
|
|
@ -44,6 +44,7 @@ type VerbSelection = {
|
||||||
transitivity: import("@lingdocs/pashto-inflector").Types.Transitivity,
|
transitivity: import("@lingdocs/pashto-inflector").Types.Transitivity,
|
||||||
isCompound: "stative" | "dynamic" | false,
|
isCompound: "stative" | "dynamic" | false,
|
||||||
changeTransitivity?: (t: "transitive" | "grammatically transitive") => VerbSelection,
|
changeTransitivity?: (t: "transitive" | "grammatically transitive") => VerbSelection,
|
||||||
|
changeStatDyn?: (t: "stative" | "dynamic") => VerbSelection,
|
||||||
// TODO: changeStativeDynamic
|
// TODO: changeStativeDynamic
|
||||||
// TODO: add in aspect element here??
|
// TODO: add in aspect element here??
|
||||||
negative: boolean,
|
negative: boolean,
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,4 @@
|
||||||
|
module.exports = [
|
||||||
|
{ ts: 1527819253 },
|
||||||
|
{ ts: 1527812566 },
|
||||||
|
];
|
Loading…
Reference in New Issue