Objective
- Ensure the "Share with client" toggle in the QwikFix modal is respected regardless of which send button the user presses
- Eliminate confusion caused by two send buttons with overlapping but undifferentiated scope
- Prevent unintended client communication when an agent has explicitly opted out
Background
- Reported by an AJF Top agent via Allie Jennings during first-time use of the QwikFix feature
- The modal presents two send paths: a "Send N items" button at the top of the QwikFixCard (QwikFix only), and a "Send to All (N)" button in the modal footer (QwikFix + all specialty contractors)
- The agent deselected "Share with client" via the toggle in
QwikFixCard.tsx, then clicked "Send to All" in the footer instead of the card-level button — the toggle appeared to re-select itself (or was not honored) - The root cause is in
QuickFixRepairQuoteModal.tsx:shareWithClientstate initializes totrueon every modal open via theuseEffectreset. If anything causes a re-render or the user's interaction sequence triggers state re-evaluation beforehandleRequestRepairQuotesfires, the toggle's deselected value can be lost - Separately, the dual-button layout contributed directly to the confusion — "Send N items" (card) vs. "Send to All (N)" (footer) are not clearly differentiated in scope for a first-time user, which led the agent to use the wrong button in the first place
Product Decisions
Locked
- "Share with client" toggle — the value set by the user at the time they press any send button must be honored, regardless of which button is used
Open
- Button labeling — how should the card-level "Send N items" button and the footer "Send to All (N)" button be differentiated to make their scopes clear? Options include adding scope descriptors (e.g. "Send to QwikFix only" vs. "Send to All Contractors"), removing the card-level button, or adding a tooltip
Scope
Frontend
src/app/client/reports/components/quickfix-repair-quote/QuickFixRepairQuoteModal.tsx—shareWithClientstate initialization (setShareWithClient(true)inuseEffect);handleRequestRepairQuotesreads this value at call time; footer "Send to All" button wires to this handlersrc/app/client/reports/components/quickfix-repair-quote/QwikFixCard.tsx— card-level send button (onSend) and "Share with client" toggle (QwikFixToggle) that controls theshareWithClientvalue passed up to the modalsrc/app/client/reports/components/quickfix-repair-quote/QwikFixToggle.tsx— toggle component rendered inside the card