- Vite 5 + React 18 + TypeScript 5 + Tailwind 3 scaffold in web/ - ClickHouse design tokens (volt, forest, canvas, charcoal, near-black) in tailwind.config.ts - TanStack Router v1 with placeholder routes for /, /item/$id, /intake, /scan - TanStack Query v5 QueryClientProvider + Zustand uiStore - shadcn/ui Button (neon/forest/secondary/outline/ghost), Card, Badge with ClickHouse variants - Vite proxy: /api -> http://localhost:8080 - Makefile: added frontend and dev-frontend targets - Fixed: @typescript-eslint v8 for ESLint v9 compatibility; @types/node for vite.config.ts
26 lines
740 B
TypeScript
26 lines
740 B
TypeScript
import { QueryClientProvider } from '@tanstack/react-query'
|
|
import { RouterProvider } from '@tanstack/react-router'
|
|
import { Toaster } from 'react-hot-toast'
|
|
import { queryClient } from '@/lib/queryClient'
|
|
import { router } from '@/router'
|
|
|
|
export function App() {
|
|
return (
|
|
<QueryClientProvider client={queryClient}>
|
|
<RouterProvider router={router} />
|
|
<Toaster
|
|
position="bottom-right"
|
|
toastOptions={{
|
|
style: {
|
|
background: '#141414',
|
|
color: '#ffffff',
|
|
border: '1px solid rgba(65,65,65,0.8)',
|
|
},
|
|
success: {
|
|
iconTheme: { primary: '#faff69', secondary: '#000000' },
|
|
},
|
|
}}
|
|
/>
|
|
</QueryClientProvider>
|
|
)
|
|
}
|