4eae11b5b0
- @tanstack/react-query v5 with QueryClientProvider at app root - client/src/api/queries.ts: query-key factory, hooks for tickets, ticket, audit, comments, users, CTI tree + cascade, plus full mutation set (create/update/delete ticket, add/delete comment, CTI CRUD, user CRUD) - All page-level useEffect + useState fetching replaced: Dashboard, MyTickets, TicketDetail, NewTicket, admin/CTI, admin/Users - Dashboard preserves 300ms debounced search via separate debouncedSearch state - CTISelect cascades via useCategories / useTypes(categoryId) / useItems(typeId); dependent hooks disabled until parent selected - vitest + @testing-library/react + jsdom; 6 client tests cover SeverityBadge + StatusBadge Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
14 lines
350 B
Docker
14 lines
350 B
Docker
FROM node:22-alpine AS build
|
|
WORKDIR /app
|
|
COPY client/package*.json ./client/
|
|
RUN cd client && npm ci
|
|
COPY client ./client
|
|
COPY shared ./shared
|
|
RUN cd client && npm run build
|
|
|
|
FROM nginx:alpine
|
|
COPY --from=build /app/client/dist /usr/share/nginx/html
|
|
COPY client/nginx.conf /etc/nginx/conf.d/default.conf
|
|
EXPOSE 80
|
|
CMD ["nginx", "-g", "daemon off;"]
|