UNPKG

@tycoonsystems/tycoon-modules

Version:
1 lines 2.76 kB
import{initialize}from"../utility/socket/index";import React,{useRef,useEffect}from"react";const SocketContainer=d=>{const g=d["_socket"];let n=useRef(!1);useRef(null);const[i,a]=React.useState(null),e=(useEffect(()=>{!n.current&&d._loggedIn&&d.dborigin&&e()},[g,n.current,d._loggedIn,d.dborigin]),()=>new Promise((e,t)=>{g.connected&&d._loggedIn&&d.dborigin&&initialize(g,d._loggedIn,d.dborigin),g.on("connect",e=>{console.log("Connected to socket ∞¦∞",g),n.current=!0,setTimeout(()=>{initialize(g,d._loggedIn,d.dborigin)},300)},{reconnectionAttempts:5}),g.on("disconnect",e=>{console.log("Disconnected from socket",g),i||"io server disconnect"===e&&(n.current=!1,e=setTimeout(()=>{g.connect(),a(null)},5e3),a(e))}),g.on("connect_error",e=>{console.log("Connection failed",e),n.current=!1;e=setTimeout(()=>{o(),a(null)},5e3);a(e)});let o=(e=5e3)=>{setTimeout(()=>{g.connect()},e)};return e()}));return useEffect(()=>{if(g){const e=e=>{console.log(e),d.setRooms&&d.setRooms(e)},t=e=>{console.log(e)},o=e=>{d._LocalEventEmitter.dispatch("uploadUpdate",e)},n=e=>{d._LocalEventEmitter.dispatch("uploadProgressUpdate",e)},i=e=>{d.setRooms&&(console.log("Rooms",e),d.setRooms(e)),e?.instantiate&&e?.log&&d._LocalEventEmitter.dispatch("messaging_internal",{dispatch:"force_instantiate",room:e.instantiate,log:e.log}),setTimeout(()=>{e?.log&&(d._LocalEventEmitter.dispatch("receive_chat",e.log),d._LocalEventEmitter.dispatch("receive_chat_direct_message",e.log))},250)},a=e=>{console.log("Receive",e),e?.log&&(d._LocalEventEmitter.dispatch("receive_chat",e.log),"direct_message"===e?.scope)&&(d._LocalEventEmitter.dispatch("receive_chat_direct_message",e.log),d._LocalEventEmitter.dispatch("messaging_internal",{dispatch:"update_conversations",log:e.log}))},c=e=>{console.log(e),e?.tables&&d._LocalEventEmitter.dispatch("receive_ban_table",e.tables)},s=e=>{e&&d._LocalEventEmitter.dispatch("scraper_updates",e)},r=e=>{e&&d._LocalEventEmitter.dispatch("incoming_authorization_ask",e)},l=e=>{e&&d._LocalEventEmitter.dispatch("messaging_internal",{dispatch:"instantiate_all_direct_messages",payload:e})};return g.on("returnInitialize",e),g.on("returnNotify",t),g.on("joinChat",i),g.on("receiveChat",a),g.on("receiveBanTable",c),g.on("scraperUpdates",s),g.on("uploadUpdate",o),g.on("uploadProgressUpdate",n),g.on("incomingAuthorizationAsk",r),g.on("returnInstantiateDirectMessages",l),()=>{g.off("returnInitialize",e),g.off("returnNotify",t),g.off("joinChat",i),g.off("receiveChat",a),g.off("receiveBanTable",c),g.off("scraperUpdates",s),g.off("uploadUpdate",o),g.off("uploadProgressUpdate",n),g.off("incomingAuthorizationAsk",r),g.off("returnInstantiateDirectMessages",l)}}},[d._loggedIn,d.setRooms]),React.createElement("div",null)};export default SocketContainer;