From 17bb917651504abd296d66411fd312506bf80528 Mon Sep 17 00:00:00 2001 From: hfhelgason Date: Thu, 9 Jan 2025 19:04:28 +0000 Subject: [PATCH] feat(new-primary-school): Contacts page --- .../new-primary-school.utils.ts | 12 ++-- .../index.tsx | 14 ++-- .../src/fields/Review/index.tsx | 4 +- .../{Relatives.tsx => Contacts.tsx} | 15 ++-- .../new-primary-school/src/fields/index.ts | 2 +- .../contactsSubSection.ts | 26 +++++++ .../childrenNParentsSection/index.ts | 4 +- .../relativesSubSection.ts | 26 ------- .../new-primary-school/src/lib/dataSchema.ts | 4 +- .../new-primary-school/src/lib/messages.ts | 70 +++++++++---------- .../src/lib/newPrimarySchoolUtils.ts | 6 +- .../templates/new-primary-school/src/types.ts | 2 +- 12 files changed, 92 insertions(+), 93 deletions(-) rename libs/application/templates/new-primary-school/src/fields/{RelativesTableRepeater => ContactsTableRepeater}/index.tsx (86%) rename libs/application/templates/new-primary-school/src/fields/Review/review-groups/{Relatives.tsx => Contacts.tsx} (85%) create mode 100644 libs/application/templates/new-primary-school/src/forms/NewPrimarySchoolForm/childrenNParentsSection/contactsSubSection.ts delete mode 100644 libs/application/templates/new-primary-school/src/forms/NewPrimarySchoolForm/childrenNParentsSection/relativesSubSection.ts diff --git a/libs/application/template-api-modules/src/lib/modules/templates/new-primary-school/new-primary-school.utils.ts b/libs/application/template-api-modules/src/lib/modules/templates/new-primary-school/new-primary-school.utils.ts index 36aba3e7c7e3..64a72de10ade 100644 --- a/libs/application/template-api-modules/src/lib/modules/templates/new-primary-school/new-primary-school.utils.ts +++ b/libs/application/template-api-modules/src/lib/modules/templates/new-primary-school/new-primary-school.utils.ts @@ -18,7 +18,7 @@ export const transformApplicationToNewPrimarySchoolDTO = ( childInfo, parents, siblings, - relatives, + contacts, reasonForApplication, reasonForApplicationCountry, reasonForApplicationStreetAddress, @@ -63,11 +63,11 @@ export const transformApplicationToNewPrimarySchoolDTO = ( }, ] : []), - ...relatives.map((relative) => ({ - name: relative.fullName, - nationalId: relative.nationalId, - phone: relative.phoneNumber, - role: relative.relation, + ...contacts.map((contact) => ({ + name: contact.fullName, + nationalId: contact.nationalId, + phone: contact.phoneNumber, + role: contact.relation, })), // TODO: Skoða hvernig ég veit hvaða ástæða var valin (ég er ekki með lista yfir ástæður) ...(reasonForApplication === diff --git a/libs/application/templates/new-primary-school/src/fields/RelativesTableRepeater/index.tsx b/libs/application/templates/new-primary-school/src/fields/ContactsTableRepeater/index.tsx similarity index 86% rename from libs/application/templates/new-primary-school/src/fields/RelativesTableRepeater/index.tsx rename to libs/application/templates/new-primary-school/src/fields/ContactsTableRepeater/index.tsx index 875ebe4ae322..09aa463a6827 100644 --- a/libs/application/templates/new-primary-school/src/fields/RelativesTableRepeater/index.tsx +++ b/libs/application/templates/new-primary-school/src/fields/ContactsTableRepeater/index.tsx @@ -15,7 +15,7 @@ import { OptionsType } from '../../lib/constants' import { newPrimarySchoolMessages } from '../../lib/messages' import { getSelectedOptionLabel } from '../../lib/newPrimarySchoolUtils' -const RelativesTableRepeater: FC> = ({ +const ContactsTableRepeater: FC> = ({ error, field, application, @@ -35,15 +35,15 @@ const RelativesTableRepeater: FC> = ({ id, title, formTitle: - newPrimarySchoolMessages.childrenNParents.relativesRegistrationTitle, + newPrimarySchoolMessages.childrenNParents.contactsRegistrationTitle, addItemButtonText: - newPrimarySchoolMessages.childrenNParents.relativesAddRelative, + newPrimarySchoolMessages.childrenNParents.contactsAddContact, saveItemButtonText: - newPrimarySchoolMessages.childrenNParents.relativesRegisterRelative, + newPrimarySchoolMessages.childrenNParents.contactsRegisterContact, removeButtonTooltipText: - newPrimarySchoolMessages.childrenNParents.relativesDeleteRelative, + newPrimarySchoolMessages.childrenNParents.contactsDeleteContact, marginTop: 0, - maxRows: 6, + maxRows: 4, fields: { fullName: { component: 'input', @@ -101,4 +101,4 @@ const RelativesTableRepeater: FC> = ({ ) } -export default RelativesTableRepeater +export default ContactsTableRepeater diff --git a/libs/application/templates/new-primary-school/src/fields/Review/index.tsx b/libs/application/templates/new-primary-school/src/fields/Review/index.tsx index babded3a9ea1..dff53fbc7383 100644 --- a/libs/application/templates/new-primary-school/src/fields/Review/index.tsx +++ b/libs/application/templates/new-primary-school/src/fields/Review/index.tsx @@ -20,7 +20,7 @@ import { Child } from './review-groups/Child' import { Languages } from './review-groups/Languages' import { Parents } from './review-groups/Parents' import { ReasonForApplication } from './review-groups/ReasonForApplication' -import { Relatives } from './review-groups/Relatives' +import { Contacts } from './review-groups/Contacts' import { Siblings } from './review-groups/Siblings' import { Support } from './review-groups/Support' import { School } from './review-groups/School' @@ -155,7 +155,7 @@ export const Review: FC = ({ )} - + {reasonForApplication !== ReasonForApplicationOptions.MOVING_ABROAD && ( <> diff --git a/libs/application/templates/new-primary-school/src/fields/Review/review-groups/Relatives.tsx b/libs/application/templates/new-primary-school/src/fields/Review/review-groups/Contacts.tsx similarity index 85% rename from libs/application/templates/new-primary-school/src/fields/Review/review-groups/Relatives.tsx rename to libs/application/templates/new-primary-school/src/fields/Review/review-groups/Contacts.tsx index 9377bdd34b49..c2272203fbec 100644 --- a/libs/application/templates/new-primary-school/src/fields/Review/review-groups/Relatives.tsx +++ b/libs/application/templates/new-primary-school/src/fields/Review/review-groups/Contacts.tsx @@ -18,17 +18,17 @@ import { } from '../../../lib/newPrimarySchoolUtils' import { ReviewGroupProps } from './props' -export const Relatives = ({ +export const Contacts = ({ application, editable, goToScreen, }: ReviewGroupProps) => { const { formatMessage } = useLocale() - const { relatives } = getApplicationAnswers(application.answers) + const { contacts } = getApplicationAnswers(application.answers) const relationFriggOptions = useFriggOptions(OptionsType.RELATION) - const rows = relatives.map((r) => { + const rows = contacts.map((r) => { return [ r.fullName, formatPhoneNumber(removeCountryCode(r.phoneNumber ?? '')), @@ -40,17 +40,16 @@ export const Relatives = ({ return ( goToScreen?.('relatives')} + editAction={() => goToScreen?.('contacts')} > - {relatives?.length > 0 && ( + {contacts?.length > 0 && ( r === undefined || r.length > 0, { - params: errorMessages.relativesRequired, + params: errorMessages.contactsRequired, }), reasonForApplication: z .object({ diff --git a/libs/application/templates/new-primary-school/src/lib/messages.ts b/libs/application/templates/new-primary-school/src/lib/messages.ts index 4f8ebf3ef61c..af73d6d444b1 100644 --- a/libs/application/templates/new-primary-school/src/lib/messages.ts +++ b/libs/application/templates/new-primary-school/src/lib/messages.ts @@ -246,43 +246,43 @@ export const newPrimarySchoolMessages: MessageDir = { 'Information about parents and guardians is retrieved from the National Register. Check that phone numbers and email addresses are entered correctly before proceeding.', }, - // Relatives - relativesSubSectionTitle: { - id: 'nps.application:childrenNParents.relatives.sub.section.title', - defaultMessage: 'Aðstandendur', - description: 'Relatives', - }, - relativesTitle: { - id: 'nps.application:childrenNParents.relatives.title', - defaultMessage: 'Aðstandendur barnsins', - description: "The child's relatives", - }, - relativesDescription: { - id: 'nps.application:childrenNParents.relatives.description', + // Contacts + contactsSubSectionTitle: { + id: 'nps.application:childrenNParents.contacts.sub.section.title', + defaultMessage: 'Tengiliðir', + description: 'Contacts', + }, + contactsTitle: { + id: 'nps.application:childrenNParents.contacts.title', + defaultMessage: 'Tengiliðir barns', + description: "The child's contacts", + }, + contactsDescription: { + id: 'nps.application:childrenNParents.contacts.description', defaultMessage: - 'Skráðu að minnsta kosti einn tengilið sem má hafa samband við ef ekki næst í foreldra/forsjáraðila barnsins. Þú getur bætt við allt að sex aðstandendum. Vinsamlegast látið aðstandendur vita af skráningunni.', + 'Skráðu að minnsta kosti einn tengilið sem má hafa samband við ef ekki næst í forsjáraðila barnsins. Þú getur bætt við allt að fjórum tengiliðum. Vinsamlegast látið tengiliði vita af skráningunni.', description: - "List at least one contact person who can be contacted if the child's parents/guardian cannot be reached. You can add up to six relatives. Please inform the relatives of the registration.", + "List at least one contact person who can be contacted if the child's guardian cannot be reached. You can add up to four contacts. Please inform the contacts of the registration.", }, - relativesRegistrationTitle: { - id: 'nps.application:childrenNParents.relatives.registration.title', - defaultMessage: 'Skráning aðstandanda', - description: 'Registration of a relative', + contactsRegistrationTitle: { + id: 'nps.application:childrenNParents.contacts.registration.title', + defaultMessage: 'Skráning tengiliðs', + description: 'Registration of a contact', }, - relativesAddRelative: { - id: 'nps.application:childrenNParents.relatives.add.relative', - defaultMessage: 'Bæta við aðstandanda', - description: 'Add a relative', + contactsAddContact: { + id: 'nps.application:childrenNParents.contacts.add.contact', + defaultMessage: 'Bæta við tengilið', + description: 'Add a contact', }, - relativesRegisterRelative: { - id: 'nps.application:childrenNParents.relatives.register.relative', - defaultMessage: 'Skrá aðstandanda', - description: 'Register relative', + contactsRegisterContact: { + id: 'nps.application:childrenNParents.contacts.register.contact', + defaultMessage: 'Skrá tengilið', + description: 'Register contact', }, - relativesDeleteRelative: { - id: 'nps.application:childrenNParents.relatives.delete.relative', - defaultMessage: 'Eyða aðstandanda', - description: 'Remove relative', + contactsDeleteContact: { + id: 'nps.application:childrenNParents.contacts.delete.contact', + defaultMessage: 'Eyða tengilið', + description: 'Remove contact', }, }), @@ -664,10 +664,10 @@ export const errorMessages = defineMessages({ defaultMessage: 'Kennitala þarf að vera gild.', description: 'Error message when the kennitala is invalid.', }, - relativesRequired: { - id: 'nps.application:error.relatives.required', - defaultMessage: 'Nauðsynlegt er að bæta við a.m.k einum aðstandenda', - description: 'You must add at least one relative', + contactsRequired: { + id: 'nps.application:error.contacts.required', + defaultMessage: 'Nauðsynlegt er að bæta við a.m.k einum tengilið', + description: 'You must add at least one contact', }, siblingsRequired: { id: 'nps.application:error.siblings.required', diff --git a/libs/application/templates/new-primary-school/src/lib/newPrimarySchoolUtils.ts b/libs/application/templates/new-primary-school/src/lib/newPrimarySchoolUtils.ts index 540c61cf8198..8a63c2d0aadd 100644 --- a/libs/application/templates/new-primary-school/src/lib/newPrimarySchoolUtils.ts +++ b/libs/application/templates/new-primary-school/src/lib/newPrimarySchoolUtils.ts @@ -13,7 +13,7 @@ import { Membership, Parents, Person, - RelativesRow, + ContactsRow, SelectOption, SiblingsRow, } from '../types' @@ -35,7 +35,7 @@ export const getApplicationAnswers = (answers: Application['answers']) => { const parents = getValueViaPath(answers, 'parents') as Parents - const relatives = getValueViaPath(answers, 'relatives') as RelativesRow[] + const contacts = getValueViaPath(answers, 'contacts') as ContactsRow[] const reasonForApplication = getValueViaPath( answers, @@ -117,7 +117,7 @@ export const getApplicationAnswers = (answers: Application['answers']) => { childInfo, differentPlaceOfResidence, parents, - relatives, + contacts, reasonForApplication, reasonForApplicationCountry, reasonForApplicationStreetAddress, diff --git a/libs/application/templates/new-primary-school/src/types.ts b/libs/application/templates/new-primary-school/src/types.ts index 7473cd7b7e64..0c18771be8cd 100644 --- a/libs/application/templates/new-primary-school/src/types.ts +++ b/libs/application/templates/new-primary-school/src/types.ts @@ -4,7 +4,7 @@ import { SiblingRelationOptions, } from './lib/constants' -export interface RelativesRow { +export interface ContactsRow { fullName: string phoneNumber: string nationalId: string