WIP: form copy and field visibility adjustments

This commit is contained in:
Joel Brock
2026-05-21 12:11:23 -07:00
parent 709d9bfd8b
commit 9460e8320f
5 changed files with 79 additions and 79 deletions
+1 -1
View File
@@ -61,7 +61,7 @@ function MissingLinkParams() {
</h2>
<p className="mt-3 leading-relaxed text-ink-soft">
Open the form using the personalized link from your email. If you no longer have it,
please contact your engagement coordinator and ask for a fresh link.
please contact <a href="mailto:survey@fci.coop">Chris @ FCI</a> and ask for a fresh link.
</p>
</div>
);
+1 -1
View File
@@ -69,7 +69,7 @@ function MissingLinkParams() {
</h2>
<p className="mt-3 leading-relaxed text-ink-soft">
Open the report using the personalized link from your email. If you no
longer have it, please contact your engagement coordinator and ask for
longer have it, please contact <a href="mailto:survey@fci.coop">Chris @ FCI</a> and ask for
a fresh link.
</p>
</div>
+1 -1
View File
@@ -476,7 +476,7 @@ function SubmitBar({
? draftSavedAt
? `Draft saved ${formatRelative(draftSavedAt)} (locally on this device)`
: "Editing — your draft will save automatically"
: "Submitting saves a new check-in record on your co-op."}
: ""}
</p>
)}
</div>
+3 -4
View File
@@ -41,15 +41,14 @@ export function SiteFooter() {
<div className="mx-auto max-w-3xl px-4 py-7 sm:px-6">
<div className="flex flex-col gap-3 sm:flex-row sm:items-baseline sm:justify-between">
<p className="font-display text-sm italic text-ink-soft">
&ldquo;A grocery co-op begins with people who decide to feed each other well.&rdquo;
&ldquo;Thank you for completing this survey.&rdquo;
</p>
<p className="text-xs text-ink-mute">
Need a fresh link? Contact your engagement coordinator.
Need a fresh link? Contact <a href="mailto:survey@fci.coop">Chris @ FCI</a>.
</p>
</div>
<p className="mt-4 text-xs text-ink-mute leading-relaxed">
Your responses go directly to your co-op&apos;s record. Nothing is shared with third
parties. This page is only reachable through a personalized link issued to you.
Your responses go directly to your co-op&apos;s record. This page is only reachable through a personalized link issued to you.
</p>
</div>
</footer>
+73 -72
View File
@@ -186,15 +186,6 @@ const stage0: StageSectionConfig = {
// type: "currency",
// civiField: `${G0}.Projected_sales_at_maturity`,
// },
{
name: "FTEs",
label: "Projected FTEs",
type: "number",
visibleWhen: visibleAtOrAfter(S.BusinessFeasibility, S.StoreImplementation, S.Stabilize),
civiField: `${G0}.FTEs`,
step: 0.1,
help: "Number of full-time equivalent (FTE) employees planned to work at the store.",
},
{
name: "Actual_FTE",
label: "Actual FTE",
@@ -210,12 +201,12 @@ const stage0: StageSectionConfig = {
visibleWhen: visibleAtOrAfter(S.Stabilize),
civiField: `${G0}.Total_cost_of_project`,
},
{
name: "Member_equity_total",
label: "Member equity total needed",
type: "currency",
civiField: `${G0}.Member_equity_total`
},
// {
// name: "Member_equity_total",
// label: "Member equity total needed",
// type: "currency",
// civiField: `${G0}.Member_equity_total`
// },
{
name: "Member_equity_raised",
label: "Member equity raised",
@@ -223,12 +214,12 @@ const stage0: StageSectionConfig = {
visibleWhen: visibleAtOrAfter(S.Stabilize),
civiField: `${G0}.Member_equity_raised`
},
{
name: "Member_loans_total",
label: "Member loans total needed",
type: "currency",
civiField: `${G0}.Member_loans_total`
},
// {
// name: "Member_loans_total",
// label: "Member loans total needed",
// type: "currency",
// civiField: `${G0}.Member_loans_total`
// },
{
name: "Member_loans_raised",
label: "Member loans raised",
@@ -249,13 +240,22 @@ const stage0: StageSectionConfig = {
visibleWhen: visibleAtOrAfter(S.Stabilize),
civiField: `${G0}.Member_preferred_shares_raised`,
},
{ name: "Bank_debt_total", label: "Bank debt total needed", type: "currency", civiField: `${G0}.Bank_debt_total` },
// { name: "Bank_debt_total", label: "Bank debt total needed", type: "currency", civiField: `${G0}.Bank_debt_total` },
{ name: "Bank_debt_raised", label: "Bank debt raised", type: "currency", visibleWhen: visibleAtOrAfter(S.Stabilize), civiField: `${G0}.Bank_debt_raised` },
{ name: "Grant_Donations_Needed", label: "Grants / Donations Needed", type: "currency", civiField: `${G0}.Grant_Donations_Needed` },
// { name: "Grant_Donations_Needed", label: "Grants / Donations Needed", type: "currency", civiField: `${G0}.Grant_Donations_Needed` },
{ name: "Grants_Donations_Raised", label: "Grants / Donations Raised", type: "currency", visibleWhen: visibleAtOrAfter(S.Stabilize), civiField: `${G0}.Grants_Donations_Raised` },
{ name: "Other_sources_total", label: "Other sources total needed", type: "currency", civiField: `${G0}.Other_sources_total` },
// { name: "Other_sources_total", label: "Other sources total needed", type: "currency", civiField: `${G0}.Other_sources_total` },
{ name: "Other_sources_raised", label: "Other sources raised", type: "currency", visibleWhen: visibleAtOrAfter(S.Stabilize), civiField: `${G0}.Other_sources_raised` },
{ name: "Date_Closed_Folded", label: "Date Closed / Folded", type: "date", civiField: `${G0}.Date_Closed_Folded` },
// { name: "Date_Closed_Folded", label: "Date Closed / Folded", type: "date", civiField: `${G0}.Date_Closed_Folded` },
{
name: "FTEs",
label: "Projected FTEs",
type: "number",
visibleWhen: visibleAtOrAfter(S.BusinessFeasibility, S.StoreImplementation, S.Stabilize),
civiField: `${G0}.FTEs`,
step: 0.1,
help: "Number of full-time equivalent (FTE) employees planned to work at the store.",
},
] as FieldConfig[],
};
@@ -328,14 +328,14 @@ const stage2: StageSectionConfig = {
{ name: "Market_Study_Upload", label: "Market Study — Upload", type: "file", civiField: `${G2}.Market_Study_Upload` },
{ name: "Pro_Forma_date_completed", label: "Pro Forma — date completed", type: "date", civiField: `${G2}.Pro_Forma_date_completed` },
{ name: "Pro_Forma_Upload", label: "Pro Forma — Upload", type: "file", civiField: `${G2}.Pro_Forma_Upload` },
{
name: "Pro_Forma_Viability",
label: "Pro Forma Viability",
type: "select",
civiField: `${G2}.Pro_Forma_Viability`,
optionGroupId: 133,
help: "Rate the viability of the project.",
},
// {
// name: "Pro_Forma_Viability",
// label: "Pro Forma Viability",
// type: "select",
// civiField: `${G2}.Pro_Forma_Viability`,
// optionGroupId: 133,
// help: "Rate the viability of the project.",
// },
{
name: "Business_Plan",
label: "Business Plan",
@@ -394,6 +394,14 @@ const stage3: StageSectionConfig = {
optionGroupId: 139,
help: "Will the co-op own the building or property?",
},
{
name: "Capital_Stack",
label: "Capital Stack",
type: "multiselect",
civiField: `${G3}.Capital_Stack`,
optionGroupId: 134,
help: "Select all the types of funding that are part of your Sources.",
},
{
name: "Capital_Campaign_Owner_Participation_",
label: "Capital Campaign: Owner Participation %",
@@ -406,14 +414,6 @@ const stage3: StageSectionConfig = {
type: "currency",
civiField: `${G3}.Capital_Campaign_Average_Owner_Investment`,
},
{
name: "Capital_Stack",
label: "Capital Stack",
type: "multiselect",
civiField: `${G3}.Capital_Stack`,
optionGroupId: 134,
help: "Select all the types of funding that are part of your Sources.",
},
{
name: "Project_Manager_Date_of_Hire",
label: "Project Manager — Date of Hire",
@@ -448,6 +448,37 @@ const stage4: StageSectionConfig = {
label: "Stage 4 — Excite & Build",
visibleWhen: visibleAtOrAfter(S.StoreImplementation, S.Stabilize),
fields: [
{
name: "General_Manager_Date_of_Hire",
label: "General Manager — Date of Hire",
type: "date",
civiField: `${G4}.General_Manager_Date_of_Hire`,
},
{
name: "General_Manager_Background",
label: "General Manager Background",
type: "select",
civiField: `${G4}.General_Manager_Background`,
optionGroupId: 135,
help: "What professional background does your General Manager have?",
},
{ name: "General_Manager_Name", label: "General Manager — Name", type: "text", civiField: `${G4}.General_Manager_Name` },
{ name: "General_Manager_Phone", label: "General Manager Phone", type: "phone", civiField: `${G4}.General_Manager_Phone` },
{ name: "GM_Email", label: "General Manager Email", type: "email", civiField: `${G4}.GM_Email` },
{
name: "GM_Support_Training",
label: "GM Support and Training",
type: "text",
civiField: `${G4}.GM_Support_Training`,
help: "What training and/or onboarding support is being provided to your GM?",
},
{
name: "GM_Support_Team",
label: "GM Support Team",
type: "text",
civiField: `${G4}.GM_Support_Team`,
help: "Who is providing support and training to your GM?",
},
{ name: "Projected_Opening_Date", label: "Projected Opening Date", type: "date", civiField: `${G4}.Projected_Opening_Date` },
{
name: "Construction_Completion_Date",
@@ -467,37 +498,7 @@ const stage4: StageSectionConfig = {
type: "file",
civiField: `${G4}.Mission_Transition_Plan_Upload`,
},
{ name: "General_Manager_Name", label: "General Manager — Name", type: "text", civiField: `${G4}.General_Manager_Name` },
{ name: "General_Manager_Phone", label: "General Manager Phone", type: "phone", civiField: `${G4}.General_Manager_Phone` },
{ name: "GM_Email", label: "General Manager Email", type: "email", civiField: `${G4}.GM_Email` },
{
name: "General_Manager_Date_of_Hire",
label: "General Manager — Date of Hire",
type: "date",
civiField: `${G4}.General_Manager_Date_of_Hire`,
},
{
name: "General_Manager_Background",
label: "General Manager Background",
type: "select",
civiField: `${G4}.General_Manager_Background`,
optionGroupId: 135,
help: "What professional background does your General Manager have?",
},
{
name: "GM_Support_Training",
label: "GM Support and Training",
type: "text",
civiField: `${G4}.GM_Support_Training`,
help: "What training and/or onboarding support is being provided to your GM?",
},
{
name: "GM_Support_Team",
label: "GM Support Team",
type: "text",
civiField: `${G4}.GM_Support_Team`,
help: "Who is providing support and training to your GM?",
},
] as FieldConfig[],
};