feat: wire frontend to platform data, migrate to Jotai + Vercel AI SDK

- Replace mock DataProvider with real GraphQL queries through sidecar
- Add queries.ts and transforms.ts for platform field name mapping
- Migrate SIP state from React Context to Jotai atoms (React 19 compat)
- Add singleton SIP manager to survive StrictMode remounts
- Remove hardcoded Olivia/Sienna accounts from nav menu
- Add password eye toggle, remember me checkbox, forgot password link
- Fix worklist hook to transform platform field names
- Add seed scripts for clinics, health packages, lab tests
- Update test harness for new doctor→clinic relation

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-18 16:44:45 +05:30
parent e01a4d7747
commit 61901eb8fb
14 changed files with 1208 additions and 108 deletions

10
src/state/sip-state.ts Normal file
View File

@@ -0,0 +1,10 @@
import { atom } from 'jotai';
import type { ConnectionStatus, CallState } from '@/types/sip';
export const sipConnectionStatusAtom = atom<ConnectionStatus>('disconnected');
export const sipCallStateAtom = atom<CallState>('idle');
export const sipCallerNumberAtom = atom<string | null>(null);
export const sipIsMutedAtom = atom<boolean>(false);
export const sipIsOnHoldAtom = atom<boolean>(false);
export const sipCallDurationAtom = atom<number>(0);
export const sipCallStartTimeAtom = atom<Date | null>(null);