From 546c202b9fae719faeceb7914dfba10fa5075acb Mon Sep 17 00:00:00 2001 From: Satyam <95536056+Satyam-Rastogi@users.noreply.github.com> Date: Sat, 14 Mar 2026 23:59:06 +0530 Subject: [PATCH] docs: update README for Lead Creation all 8 phases complete Author: Satyam Rastogi --- README.md | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index cffb21b..638939b 100644 --- a/README.md +++ b/README.md @@ -35,13 +35,17 @@ - Financial Summary sidebar with adjustable margin slider - Full light/dark theme support -### Lead Creation Page _(Phases 1–4 complete, Phases 5–8 remaining)_ +### Lead Creation Page _(All 8 phases complete)_ - Quick Capture (essential fields only) for agents at the door; Full Form for the office - 5 color-coded accordion sections: Contact (blue), Property (emerald), Job Details (amber), Insurance (purple), Assignment (cyan) - **Custom portaled dropdowns** (`LeadCustomSelect`) — dark zinc-900 panel, fully scrollable, escapes all `overflow:hidden` containers via `ReactDOM.createPortal`; scroll detection uses `e.composedPath()` for reliability across browsers and touch - **Fuzzy-search state combobox** (`LeadCombobox`) — type "tex" to find Texas, searches both abbreviation and full state name simultaneously - **Flex-wrapper icon pattern** for Phone/MapPin icons — eliminates z-index conflicts, icons are true flex siblings of the input -- Animated progress bar (GSAP), section completion check marks, spring height animations (Framer Motion) +- **Insurance section** — carrier, claim number, claim status, adjuster name/phone, policy number (purple accent) +- **Assignment section** — role-aware rep selector (agents: self-assign toggle; admins/owners: full scrollable agent list), priority pill (Low/Medium/High), follow-up date picker (cyan accent) +- **Save action** — validates required fields, Sonner toast on success/failure, redirects to Leads list +- **Leads list page** (`/emp/fa/leads`) — card list with urgency/status badges, search bar, animated empty state +- Animated progress bar (GSAP), section completion checkmarks, spring height animations (Framer Motion) - Mobile-first: sticky Save footer, responsive City/State/ZIP grid layout, ample bottom padding for footer clearance ### LynkDispatch AI _(investor demo — in development)_ @@ -125,29 +129,32 @@ All select fields in the Lead Creation form use custom components rather than na ``` src/ ├── pages/ -│ ├── CreateLeadPage.jsx # Lead creation orchestrator (form state, sections, progress) +│ ├── CreateLeadPage.jsx # Lead creation orchestrator (form state, sections, progress, save) +│ ├── LeadsListPage.jsx # Leads list with search, cards, empty state │ └── ... # Other role pages ├── components/ │ ├── leads/ -│ │ ├── LeadSectionWrapper.jsx # Collapsible accordion with spring animation -│ │ ├── LeadContactSection.jsx # Name, dynamic phone rows, dynamic email rows -│ │ ├── LeadPropertySection.jsx # Address, city/state/zip, property type, site photos -│ │ ├── LeadJobSection.jsx # Lead source, type, work/trade type, urgency, notes -│ │ ├── LeadCustomSelect.jsx # Portaled custom dropdown (accent + compact modes) -│ │ ├── LeadCombobox.jsx # Fuzzy-search combobox for state field -│ │ ├── UrgencyPillSelector.jsx # Sliding pill with Framer Motion layoutId -│ │ ├── PhoneEntryRow.jsx # Phone input with mask, type picker, primary star -│ │ └── EmailEntryRow.jsx # Email input with type picker, primary star +│ │ ├── LeadSectionWrapper.jsx # Collapsible accordion with spring animation +│ │ ├── LeadContactSection.jsx # Name, dynamic phone rows, dynamic email rows +│ │ ├── LeadPropertySection.jsx # Address, city/state/zip, property type, site photos +│ │ ├── LeadJobSection.jsx # Lead source, type, work/trade type, urgency, notes +│ │ ├── LeadInsuranceSection.jsx # Carrier, claim #/status, adjuster name/phone, policy # +│ │ ├── LeadAssignmentSection.jsx # Role-aware rep selector, priority pill, follow-up date +│ │ ├── LeadCustomSelect.jsx # Portaled custom dropdown (accent + compact modes) +│ │ ├── LeadCombobox.jsx # Fuzzy-search combobox for state field +│ │ ├── UrgencyPillSelector.jsx # Sliding pill with Framer Motion layoutId +│ │ ├── PhoneEntryRow.jsx # Phone input with mask, type picker, primary star +│ │ └── EmailEntryRow.jsx # Email input with type picker, primary star │ ├── estimates/ # EstimateBuilder modals │ ├── dispatch/ # LynkDispatch AI panels (in development) │ ├── dashboard/ # Admin dashboard widgets │ └── ... # Layout, AnimatedCounter, shared components ├── context/ # AuthContext, ThemeContext, GamificationContext ├── data/ -│ └── mockStore.jsx # Central data layer + LEAD_FORM_OPTIONS +│ └── mockStore.jsx # Central data layer + LEAD_FORM_OPTIONS + leads[] + addLead() └── hooks/ # useGamification, custom hooks ``` --- -**Maintained by Satyam Rastogi | Branch: revamp | Last updated: March 13, 2026** +**Maintained by Satyam Rastogi | Branch: revamp | Last updated: March 14, 2026**