removed user request and added user connection init to ws
parent
5e36633f02
commit
1a29502b69
29
src/App.js
29
src/App.js
|
@ -17,29 +17,6 @@ export default function App() {
|
||||||
const { userSession, setUserSession } = UseUserSession();
|
const { userSession, setUserSession } = UseUserSession();
|
||||||
const [userData, setUserData] = useState(ClientUserDataContextPreview);
|
const [userData, setUserData] = useState(ClientUserDataContextPreview);
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
if (!userSession) return;
|
|
||||||
|
|
||||||
fetch(Constants.API_ADDRESS + "/user", {
|
|
||||||
method: "GET",
|
|
||||||
|
|
||||||
headers: {
|
|
||||||
"Content-Type": "application/json",
|
|
||||||
"X-Authorization": userSession,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
.then((res) => {
|
|
||||||
if (res.status === 200) {
|
|
||||||
return res.json();
|
|
||||||
}
|
|
||||||
|
|
||||||
setUserSession();
|
|
||||||
return Promise.reject(res.status);
|
|
||||||
})
|
|
||||||
.then((data) => setUserData(data))
|
|
||||||
.catch(console.error);
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
if (!userSession) {
|
if (!userSession) {
|
||||||
return <Login setUserSession={setUserSession} />;
|
return <Login setUserSession={setUserSession} />;
|
||||||
}
|
}
|
||||||
|
@ -47,7 +24,11 @@ export default function App() {
|
||||||
return (
|
return (
|
||||||
<Layout style={{ minHeight: "100vh" }}>
|
<Layout style={{ minHeight: "100vh" }}>
|
||||||
<ClientUserDataContext.Provider value={userData}>
|
<ClientUserDataContext.Provider value={userData}>
|
||||||
<WebSocketProvider userSession={userSession}>
|
<WebSocketProvider
|
||||||
|
userSession={userSession}
|
||||||
|
setUserSession={setUserSession}
|
||||||
|
setUserData={setUserData}
|
||||||
|
>
|
||||||
<SideMenu setUserSession={setUserSession}></SideMenu>
|
<SideMenu setUserSession={setUserSession}></SideMenu>
|
||||||
<PageContent></PageContent>
|
<PageContent></PageContent>
|
||||||
</WebSocketProvider>
|
</WebSocketProvider>
|
||||||
|
|
22
src/utils.js
22
src/utils.js
|
@ -60,10 +60,16 @@ export const WebSocketTestContext = createContext(webSocketContextPreview);
|
||||||
|
|
||||||
// commands received from the backend server
|
// commands received from the backend server
|
||||||
const ReceivedMessagesCommands = {
|
const ReceivedMessagesCommands = {
|
||||||
UpdateConnectedUsers: 1,
|
InitUserSocketConnection: 1,
|
||||||
|
UpdateConnectedUsers: 2,
|
||||||
};
|
};
|
||||||
|
|
||||||
export function WebSocketProvider({ children, userSession }) {
|
export function WebSocketProvider({
|
||||||
|
children,
|
||||||
|
userSession,
|
||||||
|
setUserSession,
|
||||||
|
setUserData,
|
||||||
|
}) {
|
||||||
const [isReady, setIsReady] = useState(false);
|
const [isReady, setIsReady] = useState(false);
|
||||||
const [connectionBadgeStatus, setConnectionBadgeStatus] = useState("error");
|
const [connectionBadgeStatus, setConnectionBadgeStatus] = useState("error");
|
||||||
const [connectedWebSocketUsersCount, setConnectedWebSocketUsersCount] =
|
const [connectedWebSocketUsersCount, setConnectedWebSocketUsersCount] =
|
||||||
|
@ -88,6 +94,9 @@ export function WebSocketProvider({ children, userSession }) {
|
||||||
const body = data.Body;
|
const body = data.Body;
|
||||||
|
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
|
case ReceivedMessagesCommands.InitUserSocketConnection:
|
||||||
|
setUserData(body);
|
||||||
|
break;
|
||||||
case ReceivedMessagesCommands.UpdateConnectedUsers:
|
case ReceivedMessagesCommands.UpdateConnectedUsers:
|
||||||
setConnectedWebSocketUsersCount(body);
|
setConnectedWebSocketUsersCount(body);
|
||||||
break;
|
break;
|
||||||
|
@ -97,7 +106,14 @@ export function WebSocketProvider({ children, userSession }) {
|
||||||
socket.onclose = (event) => {
|
socket.onclose = (event) => {
|
||||||
setIsReady(false);
|
setIsReady(false);
|
||||||
setConnectionBadgeStatus("error");
|
setConnectionBadgeStatus("error");
|
||||||
console.log("closed", event.reason.code);
|
console.log("closed", event);
|
||||||
|
|
||||||
|
// custom code defined by the backend server
|
||||||
|
if (event.code === 4001) {
|
||||||
|
setUserSession();
|
||||||
|
window.location.href = "/";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (event.reason.code === 1005) return;
|
if (event.reason.code === 1005) return;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue