Files
temetro/frontend
Khalid Abdi 143ffc39f1 frontend: fix RTL sidebar group chevron; restore header buttons
- SidebarMenuAction (the expand chevron on Patients/Pharmacy/Messages) used a
  physical right-1, so in Arabic it sat on the right over the icons. Use the
  logical end-1 so it's on the right in English and the left in Arabic, clear of
  the icons.
- Revert the earlier header change: the notification bell and collapse toggle go
  back to their original placement (no RTL column stacking, no mirrored glyph,
  notifications popover back to side="right").

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-09 01:19:30 +03:00
..
2026-05-31 11:19:10 +03:00
2026-06-17 20:50:09 +03:00
2026-07-09 00:15:28 +03:00

temetro frontend

The clinician-facing AI chat UI for temetro — a Next.js 16 app where clinicians retrieve and organize patient data in natural language, rendered as rich record cards. It's wired to the ../backend for real auth, multi-tenant clinics, and live patient data.

temetro AI chat

Stack

Next.js 16 (App Router) · React 19 · TypeScript · Tailwind CSS v4 · COSS UI components (Base UI) · i18next · Socket.io client.

This app runs a customized Next.js 16 whose conventions differ from the public docs (e.g. route protection lives in proxy.ts, not middleware.ts). See CLAUDE.md and node_modules/next/dist/docs/ before writing Next.js code.

Develop

npm install
npm run dev      # Next dev server (Turbopack) on http://localhost:3000

Other scripts: npm run build (production build), npm run start (serve the build), npm run lint. There is no test runner — verify changes by running the dev server.

Talking to the backend

The frontend needs the API running (see ../backend). It resolves the backend URL from the host you open the app on — so it works on localhost and across the clinic LAN (http://<server-IP>:3000) without a rebuild. Set NEXT_PUBLIC_API_URL only to pin a fixed or reverse-proxied URL; see lib/backend-url.ts.

Architecture

  • app/ — App Router. app/(app)/ is the authenticated product shell; app/(auth)/ holds the login / signup / onboarding pages.
  • components/chat/ — the chat UI (input, message state, patient cards).
  • components/settings/ — settings panels, including About & updates (version + LAN access).
  • components/ui/ — COSS primitives (Base UI, added via the shadcn CLI).
  • lib/ — API + auth clients, i18n, and data helpers.

See CLAUDE.md for the full architecture, theming, and gotchas.

License

MIT.