diff --git a/web/app/components-v2/opiskeluoikeus/OpiskeluoikeudenTila.tsx b/web/app/components-v2/opiskeluoikeus/OpiskeluoikeudenTila.tsx index 60e706abc6..d7b1c3f061 100644 --- a/web/app/components-v2/opiskeluoikeus/OpiskeluoikeudenTila.tsx +++ b/web/app/components-v2/opiskeluoikeus/OpiskeluoikeudenTila.tsx @@ -43,26 +43,7 @@ import { UusiOpiskeluoikeudenTilaModal, UusiOpiskeluoikeusjakso } from './UusiOpiskeluoikeudenTilaModal' - -type RahoituksellinenOpiskeluoikeusjakso = Extract< - Opiskeluoikeusjakso, - { opintojenRahoitus?: any } -> -function isRahoituksellinenOpiskeluoikeusjakso( - x: Opiskeluoikeusjakso -): x is RahoituksellinenOpiskeluoikeusjakso { - return ( - isAikuistenPerusopetuksenOpiskeluoikeusjakso(x) || - isAmmatillinenOpiskeluoikeusjakso(x) || - isDIAOpiskeluoikeusjakso(x) || - isEuropeanSchoolOfHelsinkiOpiskeluoikeusjakso(x) || - isInternationalSchoolOpiskeluoikeusjakso(x) || - isLukionOpiskeluoikeusjakso(x) || - isMuunKuinSäännellynKoulutuksenOpiskeluoikeudenJakso(x) || - isTutkintokoulutukseenValmentavanOpiskeluoikeusjakso(x) || - isVapaanSivistystyönJotpaKoulutuksenOpiskeluoikeusjakso(x) - ) -} +import { isRahoituksellinenOpiskeluoikeusjakso } from '../../util/opiskeluoikeusjakso' // Opiskeluoikeuden tila viewer @@ -105,8 +86,7 @@ export const OpiskeluoikeudenTilaView = ( {t(jakso.tila.nimi)} - {isVapaanSivistystyönOpiskeluoikeusjakso(jakso) && - isRahoituksellinenOpiskeluoikeusjakso(jakso) && + {isRahoituksellinenOpiskeluoikeusjakso(jakso) && ` (${t(jakso.opintojenRahoitus?.nimi)})`} diff --git a/web/app/components-v2/opiskeluoikeus/UusiOpiskeluoikeudenTilaModal.tsx b/web/app/components-v2/opiskeluoikeus/UusiOpiskeluoikeudenTilaModal.tsx index f76cc57ee0..970c75d91f 100644 --- a/web/app/components-v2/opiskeluoikeus/UusiOpiskeluoikeudenTilaModal.tsx +++ b/web/app/components-v2/opiskeluoikeus/UusiOpiskeluoikeudenTilaModal.tsx @@ -11,6 +11,7 @@ import { } from '../../types/fi/oph/koski/schema/Koodistokoodiviite' import { Opiskeluoikeusjakso } from '../../types/fi/oph/koski/schema/Opiskeluoikeusjakso' import { VapaanSivistystyönJotpaKoulutuksenOpiskeluoikeusjakso } from '../../types/fi/oph/koski/schema/VapaanSivistystyonJotpaKoulutuksenOpiskeluoikeusjakso' +import { hasProp } from '../../util/constraints' import { KoodiarvotOf } from '../../util/koodisto' import { isValmistuvaTerminaalitila } from '../../util/opiskeluoikeus' import { ClassOf } from '../../util/types' @@ -24,7 +25,6 @@ import { RaisedButton } from '../controls/RaisedButton' import { FormField, Nothing } from '../forms/FormField' import { FormModel, useForm } from '../forms/FormModel' import { ValidationError } from '../forms/validator' -import { TestIdLayer } from '../../appstate/useTestId' export type UusiOpiskeluoikeudenTilaModalProps = CommonProps<{ @@ -87,15 +87,6 @@ const useInitialOpiskelujaksoForm = ( } }, [opiskeluoikeusjaksoClass]) -function hasRahoitus(x: string) { - switch (x) { - case VapaanSivistystyönJotpaKoulutuksenOpiskeluoikeusjakso.className: - return true - default: - return false - } -} - type P = { form: FormModel> opiskeluoikeusjaksoClass: ClassOf @@ -198,6 +189,9 @@ export const UusiOpiskeluoikeudenTilaModal = ( } }, [form.state, props]) + const schema = useSchema(props.opiskeluoikeusjaksoClass) + const hasRahoitus = hasProp(schema, 'opintojenRahoitus') + return ( ( /> - {hasRahoitus(props.opiskeluoikeusjaksoClass) && ( + {hasRahoitus && ( + +export const isRahoituksellinenOpiskeluoikeusjakso = ( + x: Opiskeluoikeusjakso +): x is RahoituksellinenOpiskeluoikeusjakso => + isAikuistenPerusopetuksenOpiskeluoikeusjakso(x) || + isAmmatillinenOpiskeluoikeusjakso(x) || + isDIAOpiskeluoikeusjakso(x) || + isEuropeanSchoolOfHelsinkiOpiskeluoikeusjakso(x) || + isInternationalSchoolOpiskeluoikeusjakso(x) || + isLukionOpiskeluoikeusjakso(x) || + isMuunKuinSäännellynKoulutuksenOpiskeluoikeudenJakso(x) || + isTutkintokoulutukseenValmentavanOpiskeluoikeusjakso(x) || + isVapaanSivistystyönJotpaKoulutuksenOpiskeluoikeusjakso(x) || + isLukionOpiskeluoikeusjakso(x)