/** * Shared Socket.IO client singleton. * * Import `socket` anywhere in the frontend to use the shared connection. * The socket connects lazily — the first import triggers the connection. */ import { io, Socket } from "socket.io-client"; const SOCKET_URL = import.meta.env.VITE_API_BASE_URL_BACKEND || (typeof window !== "undefined" ? window.location.origin : ""); export const socket: Socket = io(SOCKET_URL, { withCredentials: true, autoConnect: true, }); socket.on("connect", () => { console.log("[socket] connected:", socket.id); }); socket.on("disconnect", () => { console.log("[socket] disconnected"); });