Skip to content

Commit

Permalink
fix(passport): application cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
albina committed Oct 29, 2024
1 parent d3b3f0c commit a4bbb62
Show file tree
Hide file tree
Showing 17 changed files with 126 additions and 348 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,3 @@ export const SyslumadurPaymentCatalogApi = PaymentCatalogApi.configure({
},
externalDataId: 'payment',
})

export const DeliveryAddressApi = defineTemplateApi({
action: 'deliveryAddress',
})
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,14 @@ import { FieldBaseProps } from '@island.is/application/types'
import { useFormContext } from 'react-hook-form'
import { gql, useQuery } from '@apollo/client'
import { LoadingDots } from '@island.is/island-ui/core'
import { hasDisabilityLicense } from '../../lib/queries'
import { Markdown } from '@island.is/shared/components'

export const hasDisabilityLicense = `
query hasDisabilityLicense {
hasDisabilityLicense
}
`

export const HasDisabilityLicenseMessage: FC<
React.PropsWithChildren<FieldBaseProps>
> = () => {
Expand Down Expand Up @@ -40,10 +45,10 @@ export const HasDisabilityLicenseMessage: FC<
message={
<Markdown>
{error
? formatMessage(m.disabiltiyRecordError)
? formatMessage(m.disabilityRecordError)
: data?.hasDisabilityLicense
? formatMessage(m.disabiltiyRecordInfoMessage)
: formatMessage(m.noDisabiltiyRecordInfoMessage)}
? formatMessage(m.disabilityRecordInfoMessage)
: formatMessage(m.noDisabilityRecordInfoMessage)}
</Markdown>
}
type={
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import {
FieldBaseProps,
FieldComponents,
FieldTypes,
NationalRegistryIndividual,
TagVariant,
} from '@island.is/application/types'
import { RadioFormField } from '@island.is/application/ui-fields'
Expand Down Expand Up @@ -37,23 +36,20 @@ export const PassportSelection: FC<React.PropsWithChildren<FieldBaseProps>> = ({
} = useFormContext()
const userPassportRadio = `${id}.userPassport`
const childPassportRadio = `${id}.childPassport`
const fieldErrors = getErrorViaPath(errors, userPassportRadio)

const fieldErrorsUser = getErrorViaPath(errors, userPassportRadio)
const fieldErrorsChild = getErrorViaPath(errors, childPassportRadio)

const identityDocumentData = application.externalData.identityDocument
.data as IdentityDocumentData

const individual = application.externalData.nationalRegistry
.data as NationalRegistryIndividual

const domicileCode = individual?.address?.municipalityCode

type TagCheck = {
tag: Tag
isDisabled: boolean
}

const tag = (
identityDocument: IdentityDocument,
isChild: boolean,
): TagCheck => {
const today = new Date()
const expirationDate = new Date(identityDocument?.expirationDate)
Expand Down Expand Up @@ -110,7 +106,7 @@ export const PassportSelection: FC<React.PropsWithChildren<FieldBaseProps>> = ({
return (
<Box>
<RadioFormField
error={fieldErrors}
error={fieldErrorsUser}
application={application}
field={{
id: userPassportRadio,
Expand All @@ -131,11 +127,11 @@ export const PassportSelection: FC<React.PropsWithChildren<FieldBaseProps>> = ({
identityDocumentData.userPassport?.subType +
identityDocumentData?.userPassport?.number
: '',
tag: tag(identityDocumentData.userPassport, false).tag,
tag: tag(identityDocumentData.userPassport).tag,
disabled:
tag(identityDocumentData.userPassport, false).tag.label ===
tag(identityDocumentData.userPassport).tag.label ===
m.orderedTag.defaultMessage ||
tag(identityDocumentData.userPassport, false).isDisabled,
tag(identityDocumentData.userPassport).isDisabled,
},
],
onSelect: () => {
Expand All @@ -149,7 +145,7 @@ export const PassportSelection: FC<React.PropsWithChildren<FieldBaseProps>> = ({
</Text>
)}
<RadioFormField
error={fieldErrors}
error={fieldErrorsChild}
application={application}
field={{
space: 'smallGutter',
Expand All @@ -172,10 +168,10 @@ export const PassportSelection: FC<React.PropsWithChildren<FieldBaseProps>> = ({
child.passports[0].number
: '',
tag: child.passports
? tag(child.passports?.[0], true).tag
? tag(child.passports?.[0]).tag
: undefined,
disabled: child.passports
? tag(child.passports?.[0], true).isDisabled
? tag(child.passports?.[0]).isDisabled
: false,
}
},
Expand Down
9 changes: 4 additions & 5 deletions libs/application/templates/passport/src/forms/Done.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@ import {
buildDescriptionField,
buildForm,
buildMultiField,
getValueViaPath,
} from '@island.is/application/core'
import { Application, Form, FormModes } from '@island.is/application/types'
import { ChildsPersonalInfo, Passport, PersonalInfo } from '../lib/constants'
import { Passport } from '../lib/constants'
import { m } from '../lib/messages'

export const Done: Form = buildForm({
Expand All @@ -19,17 +20,15 @@ export const Done: Form = buildForm({
...m.applicationCompleteDescriptionText,
values: {
name:
(application.answers.childsPersonalInfo as ChildsPersonalInfo)
?.name ??
(application.answers.personalInfo as PersonalInfo)?.name,
getValueViaPath(application.answers, 'childsPersonalInfo.name') ??
getValueViaPath(application.answers, 'personalInfo.name'),
},
}),
children: [
buildDescriptionField({
id: 'nextStepsTitle',
title: m.applicationCompleteNextSteps,
titleVariant: 'h3',
description: '',
marginBottom: 1,
}),
buildDescriptionField({
Expand Down
21 changes: 3 additions & 18 deletions libs/application/templates/passport/src/forms/Draft.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import {
buildCustomField,
buildDataProviderItem,
buildDescriptionField,
buildExternalDataProvider,
buildForm,
buildMultiField,
Expand Down Expand Up @@ -101,23 +100,17 @@ export const Draft: Form = buildForm({
}),
buildSection({
id: 'serviceSection',
title: m.serviceTitle,
title: m.serviceTypeTitle,
children: [
buildMultiField({
id: 'service',
title: m.serviceTitle,
title: m.serviceTypeTitle,
description: m.serviceTypeDescription,
children: [
buildDescriptionField({
id: 'service.dropTypeDescription',
title: m.serviceTypeTitle,
titleVariant: 'h3',
description: m.serviceTypeDescription,
}),
buildRadioField({
id: 'service.type',
title: '',
width: 'half',
space: 'none',
options: ({ answers, externalData }: Application) => {
const regularCode = getChargeCode(
answers,
Expand Down Expand Up @@ -152,14 +145,6 @@ export const Draft: Form = buildForm({
]
},
}),
buildDescriptionField({
id: 'service.dropLocationDescription',
title: m.dropLocation,
titleVariant: 'h3',
space: 2,
description: m.dropLocationTitleFixedValue,
marginBottom: 'gutter',
}),
],
}),
],
Expand Down
21 changes: 9 additions & 12 deletions libs/application/templates/passport/src/forms/ParentB.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {
buildMultiField,
buildSection,
buildSubmitField,
getValueViaPath,
} from '@island.is/application/core'
import {
Application,
Expand All @@ -14,12 +15,10 @@ import {
FormModes,
PassportsApi,
} from '@island.is/application/types'
import { ChildsPersonalInfo } from '../lib/constants'
import { m } from '../lib/messages'
import { childsOverview } from './overviewSection/childsOverview'
import {
SyslumadurPaymentCatalogApi,
DeliveryAddressApi,
UserInfoApi,
NationalRegistryUserParentB,
} from '../dataProviders'
Expand All @@ -41,12 +40,14 @@ export const ParentB: Form = buildForm({
description: (application: Application) => ({
...m.parentBIntroText,
values: {
childsName: (
application.answers.childsPersonalInfo as ChildsPersonalInfo
)?.name,
guardianName: (
application.answers.childsPersonalInfo as ChildsPersonalInfo
)?.guardian1.name,
childsName: getValueViaPath(
application.answers,
'childsPersonalInfo.name',
) as string,
guardianName: getValueViaPath(
application.answers,
'childsPersonalInfo.guardian1.name',
) as string,
},
}),
children: [
Expand Down Expand Up @@ -86,10 +87,6 @@ export const ParentB: Form = buildForm({
provider: SyslumadurPaymentCatalogApi,
title: '',
}),
buildDataProviderItem({
provider: DeliveryAddressApi,
title: '',
}),
],
}),
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ import {
buildDescriptionField,
buildForm,
buildMultiField,
getValueViaPath,
} from '@island.is/application/core'
import { Application, Form, FormModes } from '@island.is/application/types'
import { ChildsPersonalInfo } from '../lib/constants'
import { m } from '../lib/messages'

export const WaitingForParentBConfirmation: Form = buildForm({
Expand All @@ -18,20 +18,21 @@ export const WaitingForParentBConfirmation: Form = buildForm({
description: (application: Application) => ({
...m.waitingForConfirmationDescription,
values: {
childsName: (
application.answers.childsPersonalInfo as ChildsPersonalInfo
)?.name,
guardian2Name: (
application.answers.childsPersonalInfo as ChildsPersonalInfo
)?.guardian2.name,
childsName: getValueViaPath(
application.answers,
'childsPersonalInfo.name',
) as string,
guardian2Name: getValueViaPath(
application.answers,
'childsPersonalInfo.guardian2.name',
) as string,
},
}),
children: [
buildDescriptionField({
id: 'nextStepsTitle',
title: m.applicationCompleteNextSteps,
titleVariant: 'h3',
description: '',
marginBottom: 1,
}),
buildDescriptionField({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ import {
buildSubmitField,
buildTextField,
} from '@island.is/application/core'
import { Application, DefaultEvents, Field } from '@island.is/application/types'
import { Application, DefaultEvents } from '@island.is/application/types'
import { removeCountryCode } from '@island.is/application/ui-components'
import { format as formatKennitala } from 'kennitala'
import { format as formatNationalId } from 'kennitala'
import { Passport } from '../../lib/constants'
import { m } from '../../lib/messages'
import { getChildPassport, hasSecondGuardian } from '../../lib/utils'
Expand All @@ -17,6 +17,12 @@ export const childsPersonalInfo = buildMultiField({
description: m.personalInfoSubtitle,
condition: (answers) => (answers.passport as Passport)?.childPassport !== '',
children: [
buildDescriptionField({
id: 'childsPersonalInfo.child',
title: m.child,
titleVariant: 'h3',
marginBottom: 'smallGutter',
}),
buildTextField({
id: 'childsPersonalInfo.name',
title: m.name,
Expand Down Expand Up @@ -67,7 +73,7 @@ export const childsPersonalInfo = buildMultiField({
width: 'half',
readOnly: true,
defaultValue: (application: Application) =>
formatKennitala(application.applicant),
formatNationalId(application.applicant),
}),
buildTextField({
id: 'childsPersonalInfo.guardian1.email',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
import {
buildAlertMessageField,
YES,
buildCheckboxField,
buildCustomField,
buildDescriptionField,
buildMultiField,
buildTextField,
getValueViaPath,
} from '@island.is/application/core'
import { Application } from '@island.is/application/types'
import { removeCountryCode } from '@island.is/application/ui-components'
import { format as formatKennitala } from 'kennitala'
import { Passport, PersonalInfo, YES } from '../../lib/constants'
import { format as formatNationalId } from 'kennitala'
import { Passport } from '../../lib/constants'
import { m } from '../../lib/messages'

export const personalInfo = buildMultiField({
Expand Down Expand Up @@ -45,7 +46,7 @@ export const personalInfo = buildMultiField({
}
)?.nationalId ?? ''

return formatKennitala(nationalId)
return formatNationalId(nationalId)
},
}),
buildTextField({
Expand Down Expand Up @@ -101,11 +102,8 @@ export const personalInfo = buildMultiField({
title: '',
component: 'HasDisabilityLicenseMessage',
doesNotRequireAnswer: true,
condition: (answers) => {
return (
(answers.personalInfo as PersonalInfo)?.disabilityCheckbox[0] === YES
)
},
condition: (answers) =>
getValueViaPath(answers, 'personalInfo.disabilityCheckbox[0]') === YES,
}),
],
})
Loading

0 comments on commit a4bbb62

Please sign in to comment.