Fixed issue where active users list in event chat did not update in real-time when new users joined. Users had to refresh the page to see newly joined participants. Root Cause: - getAllDisplayUsers() used checkedInUsers (loaded once from API) as base list, with activeUsers (Socket.IO real-time) only for isOnline flag - When new user joined chat, they appeared in activeUsers but not in checkedInUsers, so they were not displayed Solution: - Rewrote getAllDisplayUsers() to prioritize activeUsers (real-time data) - Merges activeUsers (online) with checkedInUsers (offline checked-in users) - Uses Socket.IO data as source of truth for online users - Enriches with database data when available (firstName, lastName, etc) - Sorts online users first, offline second Changes: - EventChatPage.jsx: Rewrote getAllDisplayUsers() to merge activeUsers with checkedInUsers, prioritizing real-time Socket.IO data - useEventChat.js: Added debug logging for active_users events - socket/index.js: Added debug logging for active_users emissions Testing: - User A in chat sees User B appear immediately when B joins - No page refresh required - Online/offline status updates in real-time
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.