UNPKG

@duongtrungnguyen/next-helper

Version:
62 lines 2.46 kB
"use strict"; "use client"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var use_socket_exports = {}; __export(use_socket_exports, { useSocket: () => useSocket }); module.exports = __toCommonJS(use_socket_exports); var import_react = require("react"); var import_socket = require("socket.io-client"); var import_headers = require("next/headers"); var import_configs = require("../configs"); var import_auth = require("../auth"); function useSocket(namespace) { const { state } = (0, import_auth.useAuth)(); const socketRef = (0, import_react.useRef)(null); const [isConnected, setIsConnected] = (0, import_react.useState)(false); (0, import_react.useEffect)(() => { initSocket(); return () => { var _a; (_a = socketRef.current) == null ? void 0 : _a.disconnect(); }; }, [namespace, state]); const initSocket = async () => { var _a; const cookieStore = await (0, import_headers.cookies)(); const accessToken = (_a = cookieStore.get(import_configs.libConfig.auth.cookies.accessToken)) == null ? void 0 : _a.value; if (!accessToken || !state.isAuthenticated) return; if (socketRef.current) { socketRef.current.disconnect(); } socketRef.current = (0, import_socket.io)(`${process.env.NEXT_PUBLIC_API_SERVER_ORIGIN}/${namespace}`, { transports: ["websocket"], auth: { token: `Bearer ${accessToken}` } }); socketRef.current.on("connect", () => setIsConnected(true)); socketRef.current.on("disconnect", () => setIsConnected(false)); }; return { socket: socketRef.current, isConnected }; } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { useSocket }); //# sourceMappingURL=use-socket.js.map