diff --git a/reflex/.templates/web/utils/state.js b/reflex/.templates/web/utils/state.js index f0f3874a79f..0d31b8bed95 100644 --- a/reflex/.templates/web/utils/state.js +++ b/reflex/.templates/web/utils/state.js @@ -443,6 +443,16 @@ export const applyRestEvent = async (event, socket, navigate, params) => { return eventSent; }; +/** + * Resolve a socket reference to the actual socket object. + * Handles both ref objects ({ current: Socket }) and raw sockets. + * @param socket Either a ref object or raw socket. + * @returns The actual socket object. + */ +const resolveSocket = (socket) => { + return socket?.current ?? socket; +}; + /** * Queue events to be processed and trigger processing of queue. * @param events Array of events to queue. @@ -468,7 +478,7 @@ export const queueEvents = async ( ]; } event_queue.push(...events.filter((e) => e !== undefined && e !== null)); - await processEvent(socket.current, navigate, params); + await processEvent(resolveSocket(socket), navigate, params); }; /**