mirror of
https://github.com/tiennm99/ccs.git
synced 2026-07-16 02:11:28 +00:00
PR-Agent re-review flagged that `copyText()` swallowed clipboard errors but the row's `setJustCopied(true)` always fired regardless, so users in insecure contexts (or with denied clipboard permission) saw a fake success indicator while nothing was actually copied. Make `copyText()` return a boolean and gate the "Copied" UI state on it. When the clipboard write fails, the button stays in its idle state and the user can retry rather than being misled. Refs #1138, #1151
CCS Dashboard UI
React + TypeScript + Vite frontend for the CCS local dashboard.
This UI is served by the CCS web server and is accessed via:
ccs config
Development
From project root:
bun run dev
This starts the CCS server, opens a local browser URL, and prints bind/network details for the dashboard. If the runtime bind is reachable beyond loopback, CCS also prints an auth reminder.
For remote device access during development, run:
bun run dev -- --host 0.0.0.0
For local-only development, run:
bun run dev -- --host 127.0.0.1
From ui/ only (frontend dev server):
cd ui
bun run dev
Quality Commands
cd ui
bun run typecheck
bun run lint
bun run validate
bun run test:run
i18n
Dashboard localization uses react-i18next.
- Main setup:
ui/src/lib/i18n.ts - Locale helpers:
ui/src/lib/locales.ts - Language switcher:
ui/src/components/layout/language-switcher.tsx
For full architecture, conventions, and locale onboarding, see:
Notes
- UI locale persistence uses browser localStorage key
ccs-ui-locale. - Current supported locales are managed in
ui/src/lib/locales.ts. - Current locales:
en,zh-CN,vi. - Fallback locale is English (
en).