@@ -29,7 +33,7 @@ const HouseholdMemberForm = (props: HouseholdMemberFormProps) => {
id={`edit-member-${props.memberFirstName}-${props.memberLastName}`}
type="button"
variant="text"
- className="pt-4 app-household-member-edit-button"
+ className="app-household-member-edit-button pb-1"
onClick={() => props.editMember && props.editMember(props.memberId)}
>
{props.strings?.edit ?? t("t.edit")}
diff --git a/sites/public/src/components/applications/HouseholdSizeField.tsx b/sites/public/src/components/applications/HouseholdSizeField.tsx
index 1a859c6622..c0da179c5e 100644
--- a/sites/public/src/components/applications/HouseholdSizeField.tsx
+++ b/sites/public/src/components/applications/HouseholdSizeField.tsx
@@ -1,4 +1,5 @@
import React from "react"
+import { CardSection } from "@bloom-housing/ui-seeds/src/blocks/Card"
import { t, ErrorMessage, AlertBox, AlertNotice } from "@bloom-housing/ui-components"
import { UseFormMethods, FieldError } from "react-hook-form"
@@ -60,23 +61,27 @@ const HouseholdSizeField = (props: HouseholdSizeFieldProps) => {
}
/>
-
- clearErrors()}>
- {strings?.dontQualifyHeader ?? t("application.household.dontQualifyHeader")}
-
-
-
- {strings?.dontQualifyDescription ?? t("application.household.dontQualifyInfo")}
-
-
- {strings?.getAssistance ?? t("pageTitle.getAssistance")}
-
-
-
+ {error && (
+
+
+ clearErrors()}>
+ {strings?.dontQualifyHeader ?? t("application.household.dontQualifyHeader")}
+
+
+
+ {strings?.dontQualifyDescription ?? t("application.household.dontQualifyInfo")}
+
+
+ {strings?.getAssistance ?? t("pageTitle.getAssistance")}
+
+
+
+
+ )}
>
)
}
diff --git a/sites/public/src/components/shared/FormSummaryDetails.module.scss b/sites/public/src/components/shared/FormSummaryDetails.module.scss
new file mode 100644
index 0000000000..9588315fbd
--- /dev/null
+++ b/sites/public/src/components/shared/FormSummaryDetails.module.scss
@@ -0,0 +1,38 @@
+.summary-header {
+ display: flex;
+ justify-content: space-between;
+ padding-block: var(--seeds-spacer-header);
+ background: var(--seeds-color-gray-300);
+}
+
+.summary-section {
+ padding-block-end: var(--seeds-spacer-header);
+}
+
+.summary-value {
+ padding-block-end: var(--seeds-spacer-content);
+
+ &:last-of-type {
+ padding-block-end: var(--seeds-spacer-header);
+ }
+}
+
+.summary-note-text {
+ font-size: var(--seeds-type-label-size);
+ margin-block-end: var(--seeds-spacer-content);
+}
+
+.household-member-section {
+ border-block-end: 1px solid var(--seeds-color-gray-450);
+ margin-block-end: var(--seeds-spacer-header);
+
+ &:last-child {
+ border-block-end: none;
+ }
+}
+
+.household-member-same-address {
+ font-size: var(--seeds-type-label-size);
+ color: var(--seeds-text-color-light);
+ padding-block-end: var(--seeds-spacer-header);
+}
diff --git a/sites/public/src/components/shared/FormSummaryDetails.tsx b/sites/public/src/components/shared/FormSummaryDetails.tsx
index 5d296449a9..0733469bcd 100644
--- a/sites/public/src/components/shared/FormSummaryDetails.tsx
+++ b/sites/public/src/components/shared/FormSummaryDetails.tsx
@@ -1,6 +1,6 @@
import React, { Fragment, useEffect, useState } from "react"
-import { LocalizedLink, MultiLineAddress, t } from "@bloom-housing/ui-components"
-import { FieldValue } from "@bloom-housing/ui-seeds"
+import { MultiLineAddress, t } from "@bloom-housing/ui-components"
+import { Card, FieldValue, Heading, Link } from "@bloom-housing/ui-seeds"
import {
getUniqueUnitTypes,
AddressHolder,
@@ -15,6 +15,7 @@ import {
Listing,
MultiselectQuestionsApplicationSectionEnum,
} from "@bloom-housing/shared-helpers/src/types/backend-swagger"
+import styles from "./FormSummaryDetails.module.scss"
type FormSummaryDetailsProps = {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -26,14 +27,6 @@ type FormSummaryDetailsProps = {
validationError?: boolean
}
-const EditLink = (props: { href: string }) => (
-
-
- {t("t.edit")}
-
-
-)
-
const accessibilityLabels = (accessibility) => {
const labels = []
if (accessibility.mobility) labels.push(t("application.ada.mobility"))
@@ -138,20 +131,24 @@ const FormSummaryDetails = ({
appLink: string,
header: string,
emptyText?: string,
- className?: string
+ divider?: boolean
) => {
return (
<>
-
- {header}
- {editMode && !validationError && }
-
-
+
+ {header}
+
+ {editMode && !validationError &&
{t("t.edit")}}
+
+
+
{emptyText ? (
- {emptyText}
+ {emptyText}
) : (
<>
{application[applicationSection]
@@ -173,7 +170,7 @@ const FormSummaryDetails = ({
)}
>
)}
-
+
>
)
}
@@ -187,32 +184,32 @@ const FormSummaryDetails = ({
return (
<>
-
- {t("t.you")}
- {editMode && }
-
-
-
+
+
+ {t("t.you")}
+
+ {editMode && {t("t.edit")}}
+
+
+
{application.applicant.firstName} {application.applicant.middleName}{" "}
{application.applicant.lastName}
-
{application.applicant.birthMonth}/{application.applicant.birthDay}/
{application.applicant.birthYear}
-
{application.applicant.phoneNumber && (
{application.applicant.phoneNumber}
)}
-
{application.additionalPhoneNumber && (
{application.additionalPhoneNumber}
)}
-
{application.applicant.emailAddress && (
{application.applicant.emailAddress}
)}
-
-
{application.sendMailToMailingAddress && (
)}
-
{application.applicant.workInRegion === "yes" && (
)}
-
{application.contactPreferences && (
{application.contactPreferences?.map((item) => t(`t.${item}`)).join(", ")}
)}
-
+
{application.alternateContact.type !== "" &&
application.alternateContact.type !== "noContact" && (
-
+
+ >
)}
{application.householdSize > 1 && (
-
-
- {t("application.household.householdMembers")}
+ <>
+
+
+ {t("application.review.householdDetails")}
+
{editMode && !validationError && (
-
+ {t("t.edit")}
)}
-
+
-
+
{application.householdMember.map((member, index) => (
{member.firstName} {member.lastName}
-
-
- {member.birthMonth}/{member.birthDay}/{member.birthYear}
+
+ {member.birthMonth}/{member.birthDay}/{member.birthYear}
+
+ {member.sameAddress === "no" && (
+
+
- {member.sameAddress === "no" && (
-
-
-
- )}
- {member.sameAddress !== "no" && (
-
- {t("application.review.sameAddressAsApplicant")}
-
- )}
-
+ )}
+ {member.sameAddress !== "no" && (
+
+ {t("application.review.sameAddressAsApplicant")}
+
+ )}
))}
-
-
+
+ >
)}
-
-
- {t("application.review.householdDetails")}
+ <>
+
+
+ {t("application.review.householdDetails")}
+
{editMode && !validationError && (
-
+ {t("t.edit")}
)}
-
+
-
+
{preferredUnits && (
{preferredUnits
?.map((item) => t(`application.household.preferredUnit.options.${item}`))
@@ -441,7 +436,7 @@ const FormSummaryDetails = ({
testId={"app-summary-ada"}
id="householdAda"
label={t("application.ada.label")}
- className={"pb-4"}
+ className={styles["summary-value"]}
>
{accessibilityLabels(application.accessibility).map((item) => (
@@ -453,18 +448,18 @@ const FormSummaryDetails = ({
{application.householdExpectingChanges ? t("t.yes") : t("t.no")}
{application.householdStudent ? t("t.yes") : t("t.no")}
-
+
{!hidePrograms &&
multiselectQuestionSection(
@@ -478,17 +473,24 @@ const FormSummaryDetails = ({
: null
)}
-
- {t("t.income")}
- {editMode && !validationError && }
-
+
+
+ {t("t.income")}
+
+ {editMode && !validationError && (
+ {t("t.edit")}
+ )}
+
-
+
{application.incomeVouchers ? t("t.yes") : t("t.no")}
@@ -498,7 +500,7 @@ const FormSummaryDetails = ({
testId={"app-summary-income"}
id="incomeValue"
label={t("t.income")}
- className={"pb-4"}
+ className={styles["summary-value"]}
>
$
{parseFloat(application.income).toLocaleString("en-US", {
@@ -508,7 +510,7 @@ const FormSummaryDetails = ({
{t(`t.${application.incomePeriod}`)}
)}
-
+
{!hidePreferences &&
multiselectQuestionSection(
@@ -520,9 +522,9 @@ const FormSummaryDetails = ({
county: listing?.listingsBuildingAddress?.county || listing?.jurisdictions?.name,
})} ${t("application.preferences.general.preamble")}`
: null,
- "border-b"
+ true
)}
-
+ >
>
)
}
diff --git a/sites/public/src/layouts/application-form.module.scss b/sites/public/src/layouts/application-form.module.scss
index 47952c7376..49346851a3 100644
--- a/sites/public/src/layouts/application-form.module.scss
+++ b/sites/public/src/layouts/application-form.module.scss
@@ -87,6 +87,17 @@
margin-bottom: var(--seeds-s6);
}
+/* step-specific styles */
+.application-form-household-member {
+ display: flex;
+ align-items: top;
+ justify-content: space-between;
+}
+
+.application-form-household-field-value {
+ --field-value-content-spacer: var(--seeds-s3);
+}
+
/* overrides for Seeds Message & Alert */
.message-inside-card {
--common-message-max-width: auto;
diff --git a/sites/public/src/pages/applications/household/add-members.tsx b/sites/public/src/pages/applications/household/add-members.tsx
index b433147efe..87288d9c2b 100644
--- a/sites/public/src/pages/applications/household/add-members.tsx
+++ b/sites/public/src/pages/applications/household/add-members.tsx
@@ -11,6 +11,7 @@ import { HouseholdMemberForm } from "../../../components/applications/HouseholdM
import { useFormConductor } from "../../../lib/hooks"
import { UserStatus } from "../../../lib/constants"
import ApplicationFormLayout from "../../../layouts/application-form"
+import styles from "../../../layouts/application-form.module.scss"
const ApplicationAddMembers = () => {
const { profile } = useContext(AuthContext)
@@ -51,14 +52,16 @@ const ApplicationAddMembers = () => {
const membersSection = application.householdMember.map((member, index) => {
return (
-
+
+
+
)
})
@@ -89,30 +92,26 @@ const ApplicationAddMembers = () => {
url: conductor.determinePreviousUrl(),
}}
>
-
+
+
+
+
+ {membersSection}
-
+