diff --git a/frontend/src/models/vocab.ts b/frontend/src/models/vocab.ts index 3e12e85..3339912 100644 --- a/frontend/src/models/vocab.ts +++ b/frontend/src/models/vocab.ts @@ -26,8 +26,8 @@ export interface IVerbData { export interface IAdjektivData { grundform: string; - nominativ_a: string; - nominativ_b: string; + endung_f: string; + endung_n: string; }; export interface IVocab { diff --git a/frontend/src/pages/level.tsx b/frontend/src/pages/level.tsx index 218acdd..4b0f14e 100644 --- a/frontend/src/pages/level.tsx +++ b/frontend/src/pages/level.tsx @@ -12,7 +12,7 @@ import CircularProgress from "@material-ui/core/CircularProgress"; import { withRouter } from "react-router-dom"; -import { IVocab } from "../models/vocab"; +import { IVocab, VocabType, INomenData, IVerbData, IAdjektivData } from "../models/vocab"; interface IProps { id: string; @@ -97,6 +97,43 @@ const LevelPageWithRouter = withRouter( } } + vocabSpecificInformation(vocab: IVocab) { + switch (vocab.type) { + case VocabType.NOMEN: + const nData = vocab.latin as INomenData; + return
+ + Genitiv: {nData.genitiv} + + + Genus: {nData.genus} + +
; + case VocabType.VERB: + const vData = vocab.latin as IVerbData; + return
+ + 1. Person Präsens: {vData.praesens} + + + 1. Person Perfekt: {vData.perfekt} + +
; + case VocabType.ADJEKTIV: + const aData = vocab.latin as IAdjektivData; + return
+ + Endung feminin: {aData.endung_f} + + + Endung neutrum: {aData.endung_n} + +
; + default: + return
; + } + } + render() { if (this.props.loading) { return
@@ -119,6 +156,13 @@ const LevelPageWithRouter = withRouter(
; } + const vocabTypeToStr = { + [VocabType.NOMEN]: "Nomen", + [VocabType.VERB]: "Verb", + [VocabType.ADJEKTIV]: "Adjektiv", + [VocabType.ADVERB]: "Adverb", + }; + const { currentVocab } = this.props; return
@@ -139,11 +183,12 @@ const LevelPageWithRouter = withRouter( - {currentVocab.latin.grundform} + {`${currentVocab.latin.grundform} (${vocabTypeToStr[currentVocab.type]})`} {currentVocab.german.join(", ")} + {this.vocabSpecificInformation(currentVocab)} { currentVocab.hint ? (