From 20d38fa4d0e81524955b9cf1556d68c2b5e5d50f Mon Sep 17 00:00:00 2001 From: Elyor Djalilov Date: Thu, 23 May 2024 17:42:15 +0500 Subject: [PATCH] test socket connection --- .../TableView/SessionsTableRow.js | 41 ++++++++++++++++++- packages/shared/store/SettingsStore.ts | 5 +++ 2 files changed, 44 insertions(+), 2 deletions(-) diff --git a/packages/client/src/pages/PortalSettings/categories/security/sessions/SessionsTable/TableView/SessionsTableRow.js b/packages/client/src/pages/PortalSettings/categories/security/sessions/SessionsTable/TableView/SessionsTableRow.js index 187ff42c90..c10f93aef0 100644 --- a/packages/client/src/pages/PortalSettings/categories/security/sessions/SessionsTable/TableView/SessionsTableRow.js +++ b/packages/client/src/pages/PortalSettings/categories/security/sessions/SessionsTable/TableView/SessionsTableRow.js @@ -1,5 +1,5 @@ import { inject, observer } from "mobx-react"; -import { useCallback } from "react"; +import { useState, useEffect, useCallback } from "react"; import { Base } from "@docspace/shared/themes"; import styled, { css } from "styled-components"; import withContent from "SRC_DIR/HOCs/withPeopleContent"; @@ -146,8 +146,12 @@ const SessionsTableRow = (props) => { setDisableDialogVisible, setSessionModalData, setUserSessionPanelVisible, + socketHelper, + socketOnlineStatusHelper, } = props; + const [users, setUsers] = useState([]); + const onClickSessions = () => { setSessionModalData({ ...item }); setUserSessionPanelVisible(true); @@ -186,6 +190,35 @@ const SessionsTableRow = (props) => { onClick: onClickDisable, }, ]; + // useEffect(() => { + // const userIds = item.userId; + + // if (socketOnlineStatusHelper.isEnabled) { + // socketOnlineStatusHelper.emit({ + // command: "getSessionsInPortal", + // data: { userIds }, + // }); + // socketOnlineStatusHelper.on("statuses-in-room", (data) => { + // console.log(data); + // }); + // } + // }, [socketOnlineStatusHelper]); + + useEffect(() => { + const userIds = item.userId; + socketHelper.emit({ + command: "subscribe", + data: { roomParts: "onlineusers" }, + }); + + socketHelper.emit({ + command: "getSessionsInPortal", + data: { userIds }, + }); + socketHelper.on("getSessionsInPortal", (data) => { + console.log(data); + }); + }, [socketHelper]); const isChecked = checkedProps.checked; const isOnline = status === "Online"; @@ -281,7 +314,7 @@ const SessionsTableRow = (props) => { ); }; -export default inject(({ setup, dialogsStore }) => { +export default inject(({ setup, dialogsStore, settingsStore }) => { const { setUserSessionPanelVisible } = dialogsStore; const { setLogoutAllDialogVisible, @@ -289,10 +322,14 @@ export default inject(({ setup, dialogsStore }) => { setSessionModalData, } = setup; + const { socketHelper, socketOnlineStatusHelper } = settingsStore; + return { setLogoutAllDialogVisible, setDisableDialogVisible, setSessionModalData, setUserSessionPanelVisible, + socketHelper, + socketOnlineStatusHelper, }; })(withContent(observer(SessionsTableRow))); diff --git a/packages/shared/store/SettingsStore.ts b/packages/shared/store/SettingsStore.ts index 7eba4b7be4..c5ca30c909 100644 --- a/packages/shared/store/SettingsStore.ts +++ b/packages/shared/store/SettingsStore.ts @@ -881,6 +881,11 @@ class SettingsStore { return new SocketIOHelper(socketUrl, this.publicRoomKey); } + get socketOnlineStatusHelper() { + const socketUrl = "/onlineusers"; + return new SocketIOHelper(socketUrl, this.publicRoomKey); + } + getBuildVersionInfo = async () => { let versionInfo = null; if (window?.__ASC_INITIAL_EDITOR_STATE__?.versionInfo)