feat(uat-batch-16): Interest Overview cleanup — hide legacy reminder panel, deprioritize PaymentsSection
Two coordinated layout changes on the interest Overview tab so the active milestone gets visual priority. - Legacy `interest.reminderEnabled` panel removed from Overview. The field still drives the auto-follow-up worker (`processFollowUpReminders`) and the REMINDERS section + bell-in- header surface active reminders, so the read-only duplicate panel was pure noise. Backend behaviour unchanged; no schema impact. - PaymentsSection mount relocated from above the milestone strip to below it. The active milestone above carries the rep's day-to-day attention; deposits-tracking is reference / history once expected. Render order: past strip → current milestone(s) → future (collapsed) → PaymentsSection → Lead/Source grid. Pre-Reservation the section still doesn't render at all (unchanged). Collapsed-bar + summary-chip refinement parked. tsc clean. 1419/1419 vitest pass. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -987,14 +987,8 @@ function OverviewTab({
|
||||
deposit_paid stage server-side. Hidden before the reservation
|
||||
stage: no deposit is expected yet, so the empty card is just
|
||||
noise — the next-milestone card carries the actionable copy
|
||||
instead. */}
|
||||
{showPaymentsSection ? (
|
||||
<PaymentsSection
|
||||
interestId={interestId}
|
||||
depositExpectedAmount={interest.depositExpectedAmount ?? null}
|
||||
depositExpectedCurrency={interest.depositExpectedCurrency ?? null}
|
||||
/>
|
||||
) : null}
|
||||
instead. Render order: deprioritized below the milestone strip
|
||||
so the rep's eye lands on the active step first. */}
|
||||
{/* Pre-reservation: the dedicated "Next step" guidance card was
|
||||
removed in favour of a brighter NEXT STEP pill on the active
|
||||
MilestoneSection below (it already owns the workflow actions —
|
||||
@@ -1067,6 +1061,18 @@ function OverviewTab({
|
||||
/>
|
||||
)}
|
||||
|
||||
{/* Payments section relocated below milestones (was above): the
|
||||
deposit-tracking surface is reference/history, not the rep's
|
||||
primary focus once they're at Reservation+. The active
|
||||
milestone above carries the actionable copy. */}
|
||||
{showPaymentsSection ? (
|
||||
<PaymentsSection
|
||||
interestId={interestId}
|
||||
depositExpectedAmount={interest.depositExpectedAmount ?? null}
|
||||
depositExpectedCurrency={interest.depositExpectedCurrency ?? null}
|
||||
/>
|
||||
) : null}
|
||||
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
|
||||
{/* Lead & Source (editable) */}
|
||||
<div className="space-y-1">
|
||||
@@ -1199,19 +1205,12 @@ function OverviewTab({
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
{/* Reminder */}
|
||||
{interest.reminderEnabled && (
|
||||
<div className="space-y-1">
|
||||
<h3 className="text-sm font-medium mb-2">Reminder</h3>
|
||||
<dl>
|
||||
<InfoRow
|
||||
label="Reminder Days"
|
||||
value={interest.reminderDays ? `${interest.reminderDays} days` : null}
|
||||
/>
|
||||
<InfoRow label="Last Fired" value={formatDate(interest.reminderLastFired)} />
|
||||
</dl>
|
||||
</div>
|
||||
)}
|
||||
{/* Legacy `interest.reminderEnabled` / `reminderDays` / `reminderLastFired`
|
||||
still drive the auto-follow-up worker (`processFollowUpReminders`),
|
||||
but the Overview surface for them is hidden: the REMINDERS
|
||||
section below shows the full reminders table and the bell-in-
|
||||
header surfaces active counts. Removing the duplicate read-only
|
||||
panel cleans Overview without affecting the backend job. */}
|
||||
|
||||
{/* Most-recent threaded note teaser. Saves a click into the Notes
|
||||
tab when the rep just wants to peek at "what was discussed last."
|
||||
|
||||
Reference in New Issue
Block a user