From aa28e5456ba7c8bb96f0cf6434f833c87384ff71 Mon Sep 17 00:00:00 2001 From: Balint Morasz Date: Thu, 10 Aug 2023 09:22:18 +0200 Subject: [PATCH] improve KarakterKepzettsegek a bit TODO: tolvaj kepzettsegek, testing? --- src/components/KarakterKepzettsegek.tsx | 53 +++++++++++++++++-------- src/components/KepzettsegSelector.tsx | 19 ++++----- 2 files changed, 44 insertions(+), 28 deletions(-) diff --git a/src/components/KarakterKepzettsegek.tsx b/src/components/KarakterKepzettsegek.tsx index c978727..2436c81 100644 --- a/src/components/KarakterKepzettsegek.tsx +++ b/src/components/KarakterKepzettsegek.tsx @@ -2,7 +2,7 @@ import React from "react"; import KepzettsegSelector from "./KepzettsegSelector"; import {Osztaly} from "../domain-models/osztaly"; import {UseFormRegisterReturn} from "react-hook-form"; -import {Kepzettsegek, KepzettsegId} from "../domain-models/kepzettsegek"; +import {Kepzettsegek, KepzettsegId, KepzettsegLista} from "../domain-models/kepzettsegek"; import {Modifier} from "../domain-models/tulajdonsag"; import {Faj} from "../domain-models/faj"; @@ -13,27 +13,48 @@ function KarakterKepzettsegek (props: { register: (fieldName: string) => UseFormRegisterReturn, watch: (fieldName: string, defaultValue: KepzettsegId) => string }) { - const { faj, osztaly, t_int, register, watch } = props - const numberOfKepzettseg = 3 + Modifier(t_int) + (faj === Faj.Ember ? 1 : 0) - console.log('Number of Kepzetsegek = ', numberOfKepzettseg) + const avaialableKepzettsegList = KepzettsegLista.filter(k => k.Osztalyok == null || k.Osztalyok.includes(osztaly)) - let klist = [] - for (let i = 0; i < numberOfKepzettseg; i++) { - klist.push(i) + let numberOfKepzettseg = (osztaly === Osztaly.Tolvaj ? 7 : 4) + Modifier(t_int) + (faj === Faj.Ember ? 1 : 0) + console.log('Raw Number of Kepzetsegek = ', numberOfKepzettseg) + + if (numberOfKepzettseg < 1) { + numberOfKepzettseg = 1 + } + if (numberOfKepzettseg > avaialableKepzettsegList.length){ + numberOfKepzettseg = avaialableKepzettsegList.length + } + console.log('Adjusted Number of Kepzetsegek = ', numberOfKepzettseg) + const klist = Array.from(new Array(numberOfKepzettseg).keys()) + + const getKepzettsegN = (n: number) => Kepzettsegek[watch('kep_'+n, avaialableKepzettsegList[n].Id) as KepzettsegId] + + const getKepzettsegListaN = (n: number) => { + let response = avaialableKepzettsegList; + for (let i = 0; i < n; i++) { + response = response.filter(x => x.Id !== getKepzettsegN(i).Id) + } + return response } - console.log(klist) return <> - {klist.map((idx) => - ) - } +
+
+ +
+
+ {klist.map((idx) => + ) + } +
+
} diff --git a/src/components/KepzettsegSelector.tsx b/src/components/KepzettsegSelector.tsx index 2fbf0cc..c5e3ea2 100644 --- a/src/components/KepzettsegSelector.tsx +++ b/src/components/KepzettsegSelector.tsx @@ -1,33 +1,28 @@ import React from "react"; -import {Kepzettseg, KepzettsegLista} from "../domain-models/kepzettsegek"; +import {Kepzettseg} from "../domain-models/kepzettsegek"; import {TulajdonsagLabel} from "../domain-models/tulajdonsag"; -import {Osztaly} from "../domain-models/osztaly"; import {UseFormRegisterReturn} from "react-hook-form"; function kepzettsegOptionText(k: Kepzettseg) { return k.Name + ' (' + k.Tulajdonsag.reduce((acc, k) => (acc === '' ? acc : acc + ' / ') + TulajdonsagLabel(k), '') + ')'; } -function KepzettsegSelector (props: {osztaly: Osztaly, fieldRegistration: UseFormRegisterReturn, selected : Kepzettseg}) { +function KepzettsegSelector (props: {kepzettsegek: Kepzettseg[], fieldRegistration: UseFormRegisterReturn, selected : Kepzettseg}) { - const { osztaly, fieldRegistration, selected } = props + const { kepzettsegek, fieldRegistration, selected } = props return <> -
- -
+
-
-
-