Skip to content

Commit

Permalink
feat: simplify logic for conditions
Browse files Browse the repository at this point in the history
  • Loading branch information
jonnigs committed Oct 14, 2024
1 parent 0de223b commit e10dd52
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 55 deletions.
2 changes: 1 addition & 1 deletion libs/application/templates/health-insurance/project.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
"extract-strings": {
"executor": "nx:run-commands",
"options": {
"command": "yarn ts-node -P libs/localization/tsconfig.lib.json libs/localization/scripts/extract libs/application/templates/health-insurance/src/forms/messages.ts"
"command": "yarn ts-node -P libs/localization/tsconfig.lib.json libs/localization/scripts/extract libs/application/templates/health-insurance/src/lib/messages/*.ts"
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import {
buildSection,
buildSelectField,
buildTextField,
getValueViaPath,
} from '@island.is/application/core'
import { m } from '../../lib/messages/messages'
import { FormValue } from '@island.is/application/types'
Expand All @@ -17,6 +18,10 @@ import {
} from '../../healthInsuranceUtils'
import { FILE_SIZE_LIMIT } from '../../utils/constants'
import { countryOptions, getYesNoOptions } from '../../utils/options'
import {
formerInsuranceCondition,
getFormerCountryAndCitizenship,
} from '../../utils/getFormerCountryAndCitizenship'

export const formerInsuranceSection = buildSection({
id: 'formerInsuranceSection',
Expand Down Expand Up @@ -63,16 +68,8 @@ export const formerInsuranceSection = buildSection({
message: m.waitingPeriodDescription,
alertType: 'error',
condition: (answers: FormValue) => {
const formerCountry = (
answers as {
formerInsurance: { country: string }
}
)?.formerInsurance?.country
const citizenship = (
answers as {
citizenship: string
}
)?.citizenship
const { formerCountry, citizenship } =
getFormerCountryAndCitizenship(answers)
return (
!!formerCountry &&
requireWaitingPeriod(formerCountry, citizenship)
Expand All @@ -88,11 +85,7 @@ export const formerInsuranceSection = buildSection({
uploadDescription: m.fileUploadDescription,
uploadButtonLabel: m.fileUploadButton,
condition: (answers: FormValue) => {
const formerCountry = (
answers as {
formerInsurance: { country: string }
}
)?.formerInsurance?.country
const { formerCountry } = getFormerCountryAndCitizenship(answers)
return requireConfirmationOfResidency(formerCountry)
},
}),
Expand All @@ -105,39 +98,15 @@ export const formerInsuranceSection = buildSection({
title: '',
description: m.formerInsuranceEntitlement,
tooltip: m.formerInsuranceEntitlementTooltip,
condition: (answers: FormValue) => {
const formerCountry = (
answers as {
formerInsurance: { country: string }
}
)?.formerInsurance?.country
const citizenship = (
answers as {
citizenship: string
}
)?.citizenship
return !requireWaitingPeriod(formerCountry, citizenship)
},
condition: (answers: FormValue) => formerInsuranceCondition(answers),
}),
buildRadioField({
id: 'formerInsurance.entitlement',
title: '',
width: 'half',
largeButtons: true,
options: getYesNoOptions({}),
condition: (answers: FormValue) => {
const formerCountry = (
answers as {
formerInsurance: { country: string }
}
)?.formerInsurance?.country
const citizenship = (
answers as {
citizenship: string
}
).citizenship
return !requireWaitingPeriod(formerCountry, citizenship)
},
condition: (answers: FormValue) => formerInsuranceCondition(answers),
}),
buildTextField({
id: 'formerInsurance.entitlementReason',
Expand All @@ -146,19 +115,7 @@ export const formerInsuranceSection = buildSection({
variant: 'textarea',
rows: 4,
backgroundColor: 'blue',
condition: (answers: FormValue) => {
const formerCountry = (
answers as {
formerInsurance: { country: string }
}
)?.formerInsurance?.country
const citizenship = (
answers as {
citizenship: string
}
)?.citizenship
return !requireWaitingPeriod(formerCountry, citizenship)
},
condition: (answers: FormValue) => formerInsuranceCondition(answers),
}),
],
}),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { getValueViaPath } from '@island.is/application/core'
import { FormValue } from '@island.is/application/types'
import { requireWaitingPeriod } from '../healthInsuranceUtils'

export const getFormerCountryAndCitizenship = (answers: FormValue) => {
const formerCountry = getValueViaPath(
answers,
'formerInsurance.country',
) as string
const citizenship = getValueViaPath(answers, 'citizenship') as string
return { formerCountry, citizenship }
}

export const formerInsuranceCondition = (answers: FormValue) => {
const { formerCountry, citizenship } = getFormerCountryAndCitizenship(answers)
return !requireWaitingPeriod(formerCountry, citizenship)
}

0 comments on commit e10dd52

Please sign in to comment.