mirror of
https://dev.azure.com/globalhealthx/EMR/_git/helix-engage
synced 2026-04-11 18:28:15 +00:00
Linting and Formatting
This commit is contained in:
24
README.md
24
README.md
@@ -39,15 +39,16 @@ npm run build # TypeScript check + production build
|
||||
|
||||
### Environment Variables (set at build time or in `.env`)
|
||||
|
||||
| Variable | Purpose | Dev Default | Production |
|
||||
|----------|---------|-------------|------------|
|
||||
| `VITE_API_URL` | Platform GraphQL | `http://localhost:4000` | `https://engage-api.srv1477139.hstgr.cloud` |
|
||||
| `VITE_SIDECAR_URL` | Sidecar REST API | `http://localhost:4100` | `https://engage-api.srv1477139.hstgr.cloud` |
|
||||
| `VITE_SIP_URI` | Ozonetel SIP URI | — | `sip:523590@blr-pub-rtc4.ozonetel.com` |
|
||||
| `VITE_SIP_PASSWORD` | SIP password | — | `523590` |
|
||||
| `VITE_SIP_WS_SERVER` | SIP WebSocket | — | `wss://blr-pub-rtc4.ozonetel.com:444` |
|
||||
| Variable | Purpose | Dev Default | Production |
|
||||
| -------------------- | ---------------- | ----------------------- | ------------------------------------------- |
|
||||
| `VITE_API_URL` | Platform GraphQL | `http://localhost:4000` | `https://engage-api.srv1477139.hstgr.cloud` |
|
||||
| `VITE_SIDECAR_URL` | Sidecar REST API | `http://localhost:4100` | `https://engage-api.srv1477139.hstgr.cloud` |
|
||||
| `VITE_SIP_URI` | Ozonetel SIP URI | — | `sip:523590@blr-pub-rtc4.ozonetel.com` |
|
||||
| `VITE_SIP_PASSWORD` | SIP password | — | `523590` |
|
||||
| `VITE_SIP_WS_SERVER` | SIP WebSocket | — | `wss://blr-pub-rtc4.ozonetel.com:444` |
|
||||
|
||||
**Production build command:**
|
||||
|
||||
```bash
|
||||
VITE_API_URL=https://engage-api.srv1477139.hstgr.cloud \
|
||||
VITE_SIDECAR_URL=https://engage-api.srv1477139.hstgr.cloud \
|
||||
@@ -123,34 +124,42 @@ src/
|
||||
## Troubleshooting Guide — Where to Look
|
||||
|
||||
### "The call desk isn't working"
|
||||
|
||||
**File:** `src/pages/call-desk.tsx`
|
||||
This is the orchestrator. It uses `useSip()` for call state, `useWorklist()` for the task queue, and renders either `ActiveCallCard` (in-call) or `WorklistPanel` (idle). Start here, then drill into whichever child component is misbehaving.
|
||||
|
||||
### "Calls aren't connecting / SIP errors"
|
||||
|
||||
**File:** `src/providers/sip-provider.tsx` + `src/state/sip-state.ts`
|
||||
Check `VITE_SIP_*` env vars. Ozonetel SIP WebSocket runs on **port 444** — VPNs block it. If WebSocket hangs at "connecting", turn off VPN. Also check browser console for SIP.js registration errors.
|
||||
|
||||
### "Worklist not loading / empty"
|
||||
|
||||
**File:** `src/hooks/use-worklist.ts`
|
||||
This polls `GET /api/worklist` on the sidecar every 30s. Open browser Network tab → filter for `/api/worklist`. Common causes: sidecar is down, auth token expired, or agent name doesn't match any assigned leads.
|
||||
|
||||
### "Missed calls not appearing / sub-tabs empty"
|
||||
|
||||
**File:** `src/components/call-desk/worklist-panel.tsx`
|
||||
Missed calls come from the sidecar worklist response. The sub-tabs filter by `callbackstatus` field. If all sub-tabs are empty, the sidecar ingestion may not be running (check sidecar logs for `MissedQueueService`).
|
||||
|
||||
### "Disposition / appointment not saving"
|
||||
|
||||
**File:** `src/components/call-desk/active-call-card.tsx` → `handleDisposition()`
|
||||
Posts to sidecar `POST /api/ozonetel/dispose`. Errors are caught silently (non-blocking). Check browser Network tab for the dispose request/response, then check sidecar logs.
|
||||
|
||||
### "Login broken / Failed to fetch"
|
||||
|
||||
**File:** `src/pages/login.tsx` + `src/lib/api-client.ts`
|
||||
Login calls `apiClient.login()` → sidecar `/auth/login` → platform GraphQL. Most common cause: wrong `VITE_API_URL` (built with localhost instead of production URL). **Always set env vars at build time.**
|
||||
|
||||
### "UI component looks wrong"
|
||||
|
||||
**Files:** `src/components/base/` (primitives), `src/components/application/` (complex)
|
||||
These come from the Untitled UI library. Design tokens are in `src/styles/theme.css`. Brand colors were rebuilt from logo blue `rgb(32, 96, 160)`.
|
||||
|
||||
### "Navigation / role-based access"
|
||||
|
||||
**File:** `src/components/layout/sidebar.tsx`
|
||||
Navigation groups are defined per role (admin, cc-agent, executive). Routes are registered in `src/main.tsx`.
|
||||
|
||||
@@ -173,6 +182,7 @@ Component (e.g. ActiveCallCard)
|
||||
```
|
||||
|
||||
**Key pattern:** The frontend talks to TWO backends:
|
||||
|
||||
1. **Sidecar** (REST) — for Ozonetel telephony operations and worklist
|
||||
2. **Platform** (GraphQL) — for entity CRUD (leads, appointments, patients)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user