Connect all CRM pages to the BFF and CRM service, add module docs, and mark CRM available in the SuperApp catalog. Co-authored-by: Cursor <cursoragent@cursor.com>
2.9 KiB
2.9 KiB
CRM Component Map
Date: 2026-07-26
Module components (modules/crm/)
| Component | Path | Purpose |
|---|---|---|
CrmPortalShell |
components/CrmPortalShell.tsx |
Sidebar nav, mobile drawer, theme toggle |
createPortalLayout |
components/createPortalLayout.tsx |
AuthGuard + tenant gate + shell |
CrmBreadcrumbs |
components/CrmBreadcrumbs.tsx |
CRM-root breadcrumbs |
CrmScopeNotice |
components/CrmScopeNotice.tsx |
Out-of-scope feature messaging |
CrmListCrudPage / createCrmListPage |
components/CrmListCrudPage.tsx |
Generic list CRUD factory |
CrmTablePage |
design-system/CrmTablePage.tsx |
Search, sort, pagination, bulk bar |
CrmStatGrid |
design-system/CrmTablePage.tsx |
Dashboard stat cards |
CrmStatusChip |
design-system/CrmStatusChip.tsx |
Domain status badges |
Shared platform (@/components/ds)
Used across all CRM pages:
PageHeader,DataTable,EmptyState,LoadingState,ErrorStateButton,Input,Textarea,Select,FormField,CheckboxDialog,Drawer,ConfirmDialogCard,Badge,Pagination,Skeleton,Breadcrumbs
Feature pages (modules/crm/features/sales/)
| File | Default export / named | Entities |
|---|---|---|
dashboards.tsx |
6 dashboard exports | Aggregates |
leads.tsx |
default | Lead CRUD |
contacts.tsx |
default | Contact CRUD |
companies.tsx |
default | Organization CRUD |
customers.tsx |
default | Combined view |
deals.tsx |
default | Opportunity CRUD + win/lose |
kanban.tsx |
default | Pipeline board |
pipelines.tsx |
default | Pipeline CRUD |
quotes.tsx |
default | Quote CRUD |
activities.tsx |
default | SalesActivity CRUD |
tasks.tsx |
default | Task create + complete |
meetings.tsx |
default | Meeting create |
calls.tsx |
default | CallLog create |
emails.tsx |
default | Email metadata create |
notes.tsx |
default | Note per entity |
timeline.tsx |
default | Timeline list |
documents.tsx |
default | Attachment refs |
tags.tsx |
default | Tag CRUD |
custom-fields.tsx |
default | CustomField CRUD |
export.tsx |
default | CSV export |
reports.tsx |
default | Client reports |
analytics.tsx |
default | Analytics dashboard |
scoped.tsx |
Campaigns, Segments, Import, Automation, Integrations, ApiKeys | Scope notices |
admin.tsx |
Notifications, Roles, Permissions, Audit, Settings, Health, Capabilities | Admin |
Services & hooks
| Symbol | Path |
|---|---|
crmApi |
services/crm-api.ts |
useCrmKeyboardShortcuts |
hooks/useCrmKeyboardShortcuts.ts |
useCrmHealth, useCrmCounts |
pages/shared.tsx |
Query key namespace
Prefix: ["crm", tenantId, ...]
Examples: leads, opportunities, mentions-unread, counts