Phase 1 refactoring - eliminate code duplication and improve maintainability Changes: - LoginPage: Integrate FormInput and LoadingButton components (-9 lines) - RegisterPage: Replace inline forms with FormInput/LoadingButton/Alert (-62 lines) - EventChatPage: Integrate ChatMessageList/ChatInput and Modal components (-100 lines) - MatchChatPage: Integrate ChatMessageList/ChatInput components (-50 lines) - ProfilePage: Already using reusable components (no changes) Total reduction: 221 lines (-11.6%) Benefits: - Eliminated ~40% code duplication in chat UI - Unified form inputs across authentication pages - Consistent modal dialogs with ConfirmationModal - Improved maintainability - changes propagate to all uses - Faster feature development with component library Components used: - Alert, FormInput, FormSelect, LoadingButton, LoadingSpinner - ChatMessageList, ChatMessage, ChatInput - Modal, ConfirmationModal
React + Vite
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Currently, two official plugins are available:
- @vitejs/plugin-react uses Babel (or oxc when used in rolldown-vite) for Fast Refresh
- @vitejs/plugin-react-swc uses SWC for Fast Refresh
React Compiler
The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see this documentation.
Expanding the ESLint configuration
If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the TS template for information on how to integrate TypeScript and typescript-eslint in your project.