diff --git a/src/config/genders.ts b/src/config/genders.ts index d72440b2..a9b6c469 100644 --- a/src/config/genders.ts +++ b/src/config/genders.ts @@ -2,6 +2,7 @@ export enum Genders { FEMALE = 'Female', MALE = 'Male', NON_BINARY = 'Non-binary', + OTHER = 'Other (not listed)', NO_ANSWER = 'Prefer not to answer', } export default Genders; diff --git a/src/config/userTypes.ts b/src/config/userTypes.ts index 15178e15..cff5d9fc 100644 --- a/src/config/userTypes.ts +++ b/src/config/userTypes.ts @@ -24,7 +24,7 @@ export interface IAccount { // The user's birthdate birthDate?: string; // The preferred pronoun - pronoun: string; + pronoun: String[]; // The database id (if new, leave blank / make '') id: string; _id?: string; diff --git a/src/features/Account/ManageAccountForm.tsx b/src/features/Account/ManageAccountForm.tsx index 562713e1..b230e222 100644 --- a/src/features/Account/ManageAccountForm.tsx +++ b/src/features/Account/ManageAccountForm.tsx @@ -78,7 +78,7 @@ const ManageAccountForm: React.FC = (props) => { lastName: '', password: getNestedAttr(props, ['location', 'state', 'password']) || '', phoneNumber: '', - pronoun: '', + pronoun: [], gender: '', dietaryRestrictions: [], }); @@ -319,7 +319,6 @@ const ManageAccountForm: React.FC = (props) => { options={getOptionsFromEnum(Genders)} required={true} value={fp.values.gender} - showOptionalLabel={true} /> = (props) => { creatable={true} label={CONSTANTS.PRONOUN_LABEL} name={'pronoun'} + isMulti={true} placeholder={CONSTANTS.PRONOUN_PLACEHOLDER} options={getOptionsFromEnum(Pronouns)} - required={true} + required={false} value={fp.values.pronoun} showOptionalLabel={true} /> diff --git a/src/features/Account/validationSchema.ts b/src/features/Account/validationSchema.ts index 2d711c5e..0e7d7d3f 100644 --- a/src/features/Account/validationSchema.ts +++ b/src/features/Account/validationSchema.ts @@ -15,10 +15,10 @@ const getValidationSchema = (isCreate: boolean) => { email: string().required('Required').email('Must be a valid email'), password, newPassword: string().min(6, 'Must be at least 6 characters'), - pronoun: string(), - gender: string(), + pronoun: array().of(string()), + gender: string().required('Required'), dietaryRestrictions: array().of(string()), - phoneNumber: string().test( + phoneNumber: string().required('Required').test( 'validPhone', 'Must be a valid phone number', (value) => { diff --git a/src/features/HackPass/Pass.tsx b/src/features/HackPass/Pass.tsx index d47e18ec..ab39d469 100644 --- a/src/features/HackPass/Pass.tsx +++ b/src/features/HackPass/Pass.tsx @@ -16,7 +16,7 @@ export const Pass: React.FunctionComponent = (

{props.account.firstName}

-

{props.account.pronoun}

+

{props.account.pronoun.join(", ")}

{props.hacker.application.general.school}

diff --git a/src/util/UserInfoHelperFunctions.tsx b/src/util/UserInfoHelperFunctions.tsx index 52c74a01..b34413d2 100644 --- a/src/util/UserInfoHelperFunctions.tsx +++ b/src/util/UserInfoHelperFunctions.tsx @@ -298,7 +298,7 @@ export async function generateHackPass( if (account.pronoun) { doc.text('Hacker', 8, 15); - doc.text(account.pronoun, 8, 17); + doc.text(account.pronoun.join(", "), 8, 17); } else { doc.text('Hacker', 8, 16); }