feat: dashboard restructure, integrations, settings, UI fixes

Dashboard:
- Split into components (kpi-cards, agent-table, missed-queue)
- Add collapsible AI panel on right (same pattern as Call Desk)
- Add tabs: Agent Performance | Missed Queue | Campaigns
- Date range filter in header

Integrations page:
- Ozonetel (connected), WhatsApp, Facebook, Google, Instagram, Website, Email
- Status badges, config details, webhook URL with copy button

Settings page:
- Employee table from workspaceMembers GraphQL query
- Name, email, roles, status, reset password action

Fixes:
- Fix CALLS_QUERY: callerNumber needs { primaryPhoneNumber }, recordingUrl → recording { primaryLinkUrl }
- Remove duplicate AI Assistant header
- Remove Follow-ups from CC agent sidebar (already in worklist tabs)
- Remove global search from TopBar (decorative, unused)
- Slim down TopBar height
- Fix search/table gap in worklist
- Add brand border to active nav item

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-19 15:58:31 +05:30
parent 94f4a18035
commit d9d98bce9c
15 changed files with 805 additions and 521 deletions

View File

@@ -137,12 +137,14 @@ export function transformCalls(data: any): Call[] {
createdAt: n.createdAt,
callDirection: n.direction,
callStatus: n.callStatus,
callerNumber: n.callerNumber ? [{ number: n.callerNumber, callingCode: '+91' }] : [],
callerNumber: n.callerNumber?.primaryPhoneNumber
? [{ number: n.callerNumber.primaryPhoneNumber, callingCode: '+91' }]
: [],
agentName: n.agentName,
startedAt: n.startedAt,
endedAt: n.endedAt,
durationSeconds: n.durationSec ?? 0,
recordingUrl: n.recordingUrl,
recordingUrl: n.recording?.primaryLinkUrl || null,
disposition: n.disposition,
callNotes: null,
patientId: n.patientId,