Skip to content

Commit

Permalink
Display family name before the first name as per configuration
Browse files Browse the repository at this point in the history
  • Loading branch information
vasharma05 committed Jun 28, 2023
1 parent 3e52e59 commit 030a9c2
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 28 deletions.
6 changes: 6 additions & 0 deletions packages/esm-patient-registration-app/src/config-schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ export interface RegistrationConfig {
defaultUnknownGivenName: string;
defaultUnknownFamilyName: string;
displayCapturePhoto: boolean;
displayFamilyNameFieldFirst: boolean;
};
gender: Array<Gender>;
address: {
Expand Down Expand Up @@ -220,6 +221,11 @@ export const esmPatientRegistrationSchema = {
_default: true,
_description: 'Whether to display capture patient photo slot on name field',
},
displayFamilyNameFieldFirst: {
_type: Type.Boolean,
_default: false,
_description: "Whether to display the name fields in the order 'Family name' -> 'Middle name' -> 'First name'",
},
},
gender: {
_type: Type.Array,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ function checkNumber(value: string) {
export const NameField = () => {
const {
fieldConfigurations: {
name: { displayCapturePhoto },
name: { displayCapturePhoto, displayFamilyNameFieldFirst },
},
} = useConfig() as RegistrationConfig;
const { t } = useTranslation();
Expand Down Expand Up @@ -55,6 +55,36 @@ export const NameField = () => {
}
};

const firstNameField = (
<Input
id="givenName"
name="givenName"
labelText={t('givenNameLabelText', 'First Name')}
checkWarning={checkNumber}
required
/>
);

const middleNameField = (
<Input
id="middleName"
name="middleName"
labelText={t('middleNameLabelText', 'Middle Name')}
light
checkWarning={checkNumber}
/>
);

const familyNameField = (
<Input
id="familyName"
name="familyName"
labelText={t('familyNameLabelText', 'Family Name')}
checkWarning={checkNumber}
required
/>
);

return (
<div>
<h4 className={styles.productiveHeading02Light}>{t('fullNameLabelText', 'Full Name')}</h4>
Expand All @@ -75,33 +105,20 @@ export const NameField = () => {
<Switch name="known" text={t('yes', 'Yes')} />
<Switch name="unknown" text={t('no', 'No')} />
</ContentSwitcher>
{nameKnown && (
<>
<Input
id="givenName"
name="givenName"
labelText={t('givenNameLabelText', 'First Name')}
checkWarning={checkNumber}
required
/>
{fieldConfigs.displayMiddleName && (
<Input
id="middleName"
name="middleName"
labelText={t('middleNameLabelText', 'Middle Name')}
light
checkWarning={checkNumber}
/>
)}
<Input
id="familyName"
name="familyName"
labelText={t('familyNameLabelText', 'Family Name')}
checkWarning={checkNumber}
required
/>
</>
)}
{nameKnown &&
(!displayFamilyNameFieldFirst ? (
<>
{firstNameField}
{fieldConfigs.displayMiddleName && middleNameField}
{familyNameField}
</>
) : (
<>
{familyNameField}
{fieldConfigs.displayMiddleName && middleNameField}
{firstNameField}
</>
))}
</div>
</div>
</div>
Expand Down

0 comments on commit 030a9c2

Please sign in to comment.