mirror of
https://github.com/tiennm99/ccs.git
synced 2026-10-06 00:14:46 +00:00
79 lines
2.2 KiB
Markdown
79 lines
2.2 KiB
Markdown
# CCS Dashboard UI
|
|
|
|
React, TypeScript, and Vite frontend for the local dashboard served by the CCS
|
|
web server through:
|
|
|
|
```bash
|
|
ccs config
|
|
```
|
|
|
|
## Development
|
|
|
|
From the repository root, build the server and open the integrated dashboard:
|
|
|
|
```bash
|
|
bun run dev
|
|
```
|
|
|
|
Pass a host explicitly when testing network access:
|
|
|
|
```bash
|
|
bun run dev -- --host 0.0.0.0
|
|
bun run dev -- --host 127.0.0.1
|
|
```
|
|
|
|
For the frontend-only Vite server:
|
|
|
|
```bash
|
|
cd ui
|
|
bun run dev
|
|
```
|
|
|
|
Root and UI scripts are defined in
|
|
[`../package.json`](../package.json) and [`package.json`](./package.json).
|
|
|
|
## Source Ownership
|
|
|
|
| Area | Path |
|
|
| --- | --- |
|
|
| Route-level pages | [`src/pages/`](./src/pages/) |
|
|
| Domain and shared components | [`src/components/`](./src/components/) |
|
|
| Server-state hooks | [`src/hooks/`](./src/hooks/) |
|
|
| Cross-page context/providers | [`src/contexts/`](./src/contexts/) and [`src/providers/`](./src/providers/) |
|
|
| API, localization, catalogs, helpers | [`src/lib/`](./src/lib/) |
|
|
| UI tests | [`tests/`](./tests/) and colocated tests |
|
|
|
|
Follow the owning domain's existing import pattern. Barrel exports are optional,
|
|
not required at every directory level.
|
|
|
|
## Quality Commands
|
|
|
|
```bash
|
|
cd ui
|
|
bun run format
|
|
bun run typecheck
|
|
bun run lint
|
|
bun run validate
|
|
bun run test:run
|
|
```
|
|
|
|
`bun run validate` currently runs typecheck, lint with fixes, and the format
|
|
check. UI tests run with Vitest; use `test`, `test:run`, `test:coverage`, or
|
|
`test:ui` as defined in [`package.json`](./package.json).
|
|
|
|
## Localization
|
|
|
|
Dashboard localization uses `react-i18next`.
|
|
|
|
| Concern | Source |
|
|
| --- | --- |
|
|
| Supported locales, normalization, fallback, persistence | [`src/lib/locales.ts`](./src/lib/locales.ts) |
|
|
| i18next setup and translation resources | [`src/lib/i18n.ts`](./src/lib/i18n.ts) |
|
|
| Language switcher | [`src/components/layout/language-switcher.tsx`](./src/components/layout/language-switcher.tsx) |
|
|
|
|
English is the fallback. The selected locale is stored in browser local storage
|
|
under `ccs-ui-locale`. Treat `src/lib/locales.ts` as the complete source of
|
|
truth for supported locale codes. When adding or removing a locale, update the
|
|
translation resources, switcher, tests, and
|
|
[dashboard i18n guide](../docs/i18n-dashboard.md) in the same change.
|