mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-10 05:12:14 +00:00
Drop the in-app bug-report surface end to end: the user submission page, the feedback intake and admin inbox, the optional GitHub-issue escalation, the operator config, and the dedicated achievement badges. - delete the /bugreport page and the bugreport / feedback / admin-feedback API routes - drop the Feedback model, its enums, and the AppSettings GitHub-issue and enable columns (migration 0205) - remove the admin Feedback section, the Bug Report integration card, and the system-status row - drop the bug-report nav entry and the app-settings provider that only carried its flag - remove the bug-hunter achievement badges and their metric - prune the related i18n keys across every locale and the encrypted-column and key-rotation registries
25 lines
1.9 KiB
Markdown
25 lines
1.9 KiB
Markdown
# `src/components/`
|
|
|
|
React components. The UI primitives are shadcn/ui (new-york style, zinc base) over Radix + Tailwind 4 + Lucide; everything above the primitives is feature-grouped by surface. Components are server components unless they need a hook, state, or browser API, in which case they open with `"use client"`. Charts use Recharts 3 — replacing the chart library requires explicit approval.
|
|
|
|
## Primitives and shell
|
|
|
|
- **`ui/`** — shadcn/ui primitives (button, dialog, sheet, table, …). Generated by the shadcn CLI; keep edits minimal and on-style.
|
|
- **`layout/`** — the app shell: sidebar, topbar, bottom nav.
|
|
- **`providers.tsx`, `version-poller.tsx`** — top-level context providers and the self-healing stale-shell poller.
|
|
- **`i18n/`** — translation context + locale switcher.
|
|
|
|
## Feature groups
|
|
|
|
- **`insights/`** — insight status, assessment cards, Coach surface, advisor cards (the largest group).
|
|
- **`medications/`** — medication cards, the schedule wizard, intake timeline, detail history.
|
|
- **`settings/`** — the section components behind each settings page.
|
|
- **`measurements/`, `mood/`, `dashboard/`** — entry forms, lists, dashboard tiles.
|
|
- **`charts/`** — Recharts wrappers.
|
|
- **`monitoring/`** — Umami / GlitchTip client bootstrap.
|
|
- **`gamification/`, `targets/`, `comparison/`, `doctor-report/`, `clinician/`, `onboarding/`, `admin/`** — the remaining per-surface groups.
|
|
|
|
## Conventions
|
|
|
|
Kebab-case filenames; React component exports stay PascalCase regardless. (A handful of PascalCase-filename outliers under `medications/` + `onboarding/` are pre-existing drift, noted in [`../../CLAUDE.md`](../../CLAUDE.md).) Every `t()` call needs a matching key in `messages/en.json` — guarded by `i18n-call-site-coverage.test.ts`. Data reads go through TanStack Query with keys from `@/lib/query-keys` and unwrap `(await res.json()).data`. Tests live in [`__tests__/`](__tests__/).
|