Files
qavion-time-tracker-assessment/frontend/vite.config.ts
T
achim 02f0dc4241 feat(frontend): scaffold — Tailwind v4, routing, API layer, UserContext
- tailwindcss + @tailwindcss/vite, react-router-dom, date-fns, zod installed
- vite.config.ts: Tailwind v4 Vite plugin wired in
- index.css: single @import "tailwindcss" (zero-config v4)
- main.tsx: wrapped in <BrowserRouter>; imports index.css
- App.tsx: layout shell with <TopBar/> + <Routes> (/, /weekly, /monthly, /projects)
- lib/api.ts: Zod schemas for all API types + typed fetch wrapper; all
  responses validated before field access (per CLAUDE.md rule)
- lib/format.ts: minutesToHmm, hmmToMinutes, centsToEur, ISO week helpers,
  year-month helpers, formatDate
- lib/types.ts: z.infer<> re-exports from api.ts
- state/UserContext.tsx: selected user persisted in localStorage; auto-
  selects first user on load

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 11:43:35 +02:00

19 lines
403 B
TypeScript

/// <reference types="vitest" />
import tailwindcss from "@tailwindcss/vite";
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
export default defineConfig({
plugins: [tailwindcss(), react()],
server: {
proxy: {
"/api": "http://localhost:8080",
},
},
test: {
globals: true,
environment: "jsdom",
setupFiles: ["./tests/setup.ts"],
},
});