import React from "react"; import KepzettsegSelector from "../display-components/KepzettsegSelector2E"; import { GetKepzettsegListaN, GetNumberOfKepzettsegek, GetTolvajKepzettsegListaN, Kepzettseg, Kepzettsegek, KepzettsegId, } from "../domain-models/kepzettsegek2E"; import {arraySetN} from "../../util"; import {useDispatch, useSelector} from "react-redux"; import {AppDispatch, RootState} from "../../store"; import {characterSelector, setKepzettsegek, setTolvajKepzettsegek} from "../domain-models/characterSlice"; import {TulajdonsagokFajjal} from "../domain-models/faj2E"; function InternalKepzettsegekSelector(props: { title: string, numberOfKepzettseg: number, getKepzettsegListaN: (n: number) => Kepzettseg[], kepzettsegek: KepzettsegId[], changeKepzettsegek: (newKepzettsegek: KepzettsegId[]) => void, dataTestId?: string, }) { const { title, numberOfKepzettseg, getKepzettsegListaN, kepzettsegek, changeKepzettsegek, dataTestId, } = props const klist = Array.from(new Array(numberOfKepzettseg).keys()) const preCalculated: { kepzettsegek: Kepzettseg[], changeKepzettseg: (newKepzettseg: KepzettsegId) => void, selected: Kepzettseg, }[] = []; for (let i = 0; i < numberOfKepzettseg; i++) { preCalculated.push({ kepzettsegek: getKepzettsegListaN(i), selected: Kepzettsegek[kepzettsegek[i]] || getKepzettsegListaN(i)[0], changeKepzettseg: (newKepzettseg: KepzettsegId) => changeKepzettsegek(arraySetN(kepzettsegek, i, newKepzettseg)) }) } return <>
{klist.map((idx) => ) }
} function KarakterKepzettsegek () { const karakter = useSelector.withTypes()(characterSelector); const dispatch = useDispatch.withTypes()(); const tulajdonsagokFajjal = TulajdonsagokFajjal(karakter.tulajdonsagok, karakter.faj) const numberOfKepzettsegek = GetNumberOfKepzettsegek(tulajdonsagokFajjal.t_int, karakter.faj) const kepzettsegek = karakter.kepzettsegek const fajError = karakter.kepzettsegFajError const osztalyError = karakter.kepzettsegOsztalyError const tolvajKepzettsegek = karakter.tolvajKepzettsegek || [] const getKepzettsegListaN = GetKepzettsegListaN(karakter) const changeKepzettsegek = (k: KepzettsegId[]) => dispatch(setKepzettsegek(k)) const changeTolvajKepzettsegek = (k: KepzettsegId[]) => dispatch(setTolvajKepzettsegek(k)) return <> {fajError && ( {fajError})} {osztalyError && ( {osztalyError})} {tolvajKepzettsegek.length > 0 && } } export default KarakterKepzettsegek