Skip to content

Commit 89cbe99

Browse files
committed
improve-live-room-function
1 parent 4727b1b commit 89cbe99

File tree

3 files changed

+64
-74
lines changed

3 files changed

+64
-74
lines changed

app/src/components/left/RoomsContainer.tsx

Lines changed: 62 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Stack, Typography } from '@mui/material';
22
import { useDispatch, useSelector } from 'react-redux';
33

44
import Button from '@mui/material/Button';
5-
import React from 'react';
5+
import React, { useState } from 'react';
66
import { RootState } from '../../redux/store';
77
import TextField from '@mui/material/TextField';
88
import { allCooperativeState } from '../../redux/reducers/slice/appStateSlice';
@@ -21,8 +21,10 @@ import debounce from '../../../../node_modules/lodash/debounce.js';
2121
let socket;
2222
const { API_BASE_URL } = config;
2323
const RoomsContainer = () => {
24-
const [roomCode, setRoomCode] = React.useState('');
25-
const [confirmRoom, setConfirmRoom] = React.useState('');
24+
const [roomCode, setRoomCode] = useState('');
25+
const [confirmRoom, setConfirmRoom] = useState('');
26+
const [userJoined, setUserJoined] = useState(false); //setting up state for joinning a room
27+
const [emptyInput, setEmptyInput] = useState(false);
2628
const dispatch = useDispatch();
2729
const { state, joinedRoom } = useSelector((store: RootState) => ({
2830
state: store.appState,
@@ -116,10 +118,19 @@ const RoomsContainer = () => {
116118
setConfirmRoom((confirmRoom) => roomCode);
117119
// Call handleUserEnteredRoom when joining a room
118120
handleUserEnteredRoom(roomCode);
121+
setUserJoined(true); //setting joined room to true for rendering leave room button
119122
}
123+
124+
function leaveRoom() {
125+
if (socket) socket.disconnect(); //disconnecting socket
126+
dispatch(changeRoom(''));
127+
setRoomCode('');
128+
setUserJoined(false); //setting joined to false so join button appear
129+
}
130+
120131
return (
121132
<div>
122-
<Stack
133+
<Stack //stack styling for container
123134
spacing={2}
124135
sx={{
125136
paddingTop: '20px',
@@ -129,44 +140,57 @@ const RoomsContainer = () => {
129140
}}
130141
>
131142
{' '}
143+
{/* live room display */}
132144
<Typography variant="h6" color={'white'}>
133145
Live Room: {joinedRoom}
134146
</Typography>
135-
<TextField
136-
hiddenLabel
137-
id="filled-hidden-label-small"
138-
variant="filled"
139-
size="small"
140-
onChange={(e) => setRoomCode(e.target.value)}
141-
/>
142-
{/* <input
143-
type="text"
144-
style={{
145-
margin: '3px 5%',
146-
borderRadius: '5px',
147-
padding: '3px',
148-
width: '90%'
149-
}}
150-
placeholder="Room Code"
151-
onChange={(e) => setRoomCode(e.target.value)}
152-
></input> */}
153-
<Button
154-
variant="contained"
155-
onClick={() => joinRoom()}
156-
sx={{
157-
backgroundColor: '#ffffff',
158-
color: '#000000',
159-
'&:hover': {
160-
backgroundColor: '#C6C6C6',
161-
borderColor: '#0062cc',
162-
boxShadow: 'none'
163-
}
164-
}}
165-
>
166-
Join Room
167-
</Button>
147+
{/* Set up condition rendering depends on if user joined a room then render leave button if not render join button */}
148+
{userJoined ? (
149+
<Button
150+
variant="contained"
151+
onClick={() => leaveRoom()}
152+
sx={{
153+
backgroundColor: '#ffffff',
154+
color: '#000000',
155+
'&:hover': {
156+
backgroundColor: '#C6C6C6',
157+
borderColor: '#0062cc'
158+
}
159+
}}
160+
>
161+
{' '}
162+
Leave Room{' '}
163+
</Button>
164+
) : (
165+
<>
166+
<TextField
167+
hiddenLabel={true}
168+
id="filled-hidden-label-small"
169+
variant="filled"
170+
size="small"
171+
value={roomCode}
172+
placeholder="Input Room Number"
173+
onChange={(e) => setRoomCode(e.target.value)}
174+
/>
175+
<Button
176+
variant="contained"
177+
disabled={roomCode.trim() === ''}
178+
onClick={() => joinRoom()}
179+
sx={{
180+
backgroundColor: '#ffffff',
181+
color: '#000000',
182+
'&:hover': {
183+
backgroundColor: '#C6C6C6',
184+
borderColor: '#0062cc'
185+
}
186+
}}
187+
>
188+
{' '}
189+
Join Room{' '}
190+
</Button>
191+
</>
192+
)}
168193
</Stack>
169-
{/* <button onClick={() => joinRoom()}>Join Room</button> */}
170194
</div>
171195
);
172196
};

app/src/components/top/NavBarButtons.tsx

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -254,33 +254,6 @@ function navbarDropDown(props) {
254254
// // Call handleUserEnteredRoom when joining a room
255255
// handleUserEnteredRoom(roomCode);
256256
// }
257-
<<<<<<< HEAD
258-
// Part - Dark Mode
259-
const switchDark = isDarkMode ? (
260-
<svg
261-
xmlns="http://www.w3.org/2000/svg"
262-
width="16"
263-
height="16"
264-
fill="currentColor"
265-
className="bi bi-lightbulb"
266-
viewBox="0 0 16 16"
267-
>
268-
<path d="M2 6a6 6 0 1 1 10.174 4.31c-.203.196-.359.4-.453.619l-.762 1.769A.5.5 0 0 1 10.5 13a.5.5 0 0 1 0 1 .5.5 0 0 1 0 1l-.224.447a1 1 0 0 1-.894.553H6.618a1 1 0 0 1-.894-.553L5.5 15a.5.5 0 0 1 0-1 .5.5 0 0 1 0-1 .5.5 0 0 1-.46-.302l-.761-1.77a1.964 1.964 0 0 0-.453-.618A5.984 5.984 0 0 1 2 6zm6-5a5 5 0 0 0-3.479 8.592c.263.254.514.564.676.941L5.83 12h4.342l.632-1.467c.162-.377.413-.687.676-.941A5 5 0 0 0 8 1z" />
269-
</svg>
270-
) : (
271-
<svg
272-
xmlns="http://www.w3.org/2000/svg"
273-
width="16"
274-
height="16"
275-
fill="currentColor"
276-
className="bi bi-moon"
277-
viewBox="0 0 16 16"
278-
>
279-
<path d="M6 .278a.768.768 0 0 1 .08.858 7.208 7.208 0 0 0-.878 3.46c0 4.021 3.278 7.277 7.318 7.277.527 0 1.04-.055 1.533-.16a.787.787 0 0 1 .81.316.733.733 0 0 1-.031.893A8.349 8.349 0 0 1 8.344 16C3.734 16 0 12.286 0 7.71 0 4.266 2.114 1.312 5.124.06A.752.752 0 0 1 6 .278zM4.858 1.311A7.269 7.269 0 0 0 1.025 7.71c0 4.02 3.279 7.276 7.319 7.276a7.316 7.316 0 0 0 5.205-2.162c-.337.042-.68.063-1.029.063-4.61 0-8.343-3.714-8.343-8.29 0-1.167.242-2.278.681-3.286z" />
280-
</svg>
281-
);
282-
=======
283-
>>>>>>> dev
284257

285258
let showMenu = props.dropMenu ? 'navDropDown' : 'hideNavDropDown';
286259

@@ -354,14 +327,6 @@ function navbarDropDown(props) {
354327
<path d="M6.5 1h3a.5.5 0 0 1 .5.5v1H6v-1a.5.5 0 0 1 .5-.5ZM11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3A1.5 1.5 0 0 0 5 1.5v1H2.506a.58.58 0 0 0-.01 0H1.5a.5.5 0 0 0 0 1h.538l.853 10.66A2 2 0 0 0 4.885 16h6.23a2 2 0 0 0 1.994-1.84l.853-10.66h.538a.5.5 0 0 0 0-1h-.995a.59.59 0 0 0-.01 0H11Zm1.958 1-.846 10.58a1 1 0 0 1-.997.92h-6.23a1 1 0 0 1-.997-.92L3.042 3.5h9.916Zm-7.487 1a.5.5 0 0 1 .528.47l.5 8.5a.5.5 0 0 1-.998.06L5 5.03a.5.5 0 0 1 .47-.53Zm5.058 0a.5.5 0 0 1 .47.53l-.5 8.5a.5.5 0 1 1-.998-.06l.5-8.5a.5.5 0 0 1 .528-.47ZM8 4.5a.5.5 0 0 1 .5.5v8.5a.5.5 0 0 1-1 0V5a.5.5 0 0 1 .5-.5Z" />
355328
</svg>
356329
</button>
357-
<<<<<<< HEAD
358-
{/* {<ExportButton />} */}
359-
{/*
360-
<button onClick={handleDarkModeToggle}>
361-
{isDarkMode ? 'Light' : 'Dark'} Mode {switchDark}
362-
</button> */}
363-
=======
364-
>>>>>>> dev
365330
{state.isLoggedIn && (
366331
<button onClick={handleClick}>
367332
Manage Project

server/server.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ const io = new Server(httpServer, {
9595
}
9696
});
9797

98+
9899
io.on('connection', (socket) => {
99100
console.log('Socket ID: -----', socket.id);
100101
socket.on('custom-event', (string, redux_store, room) => {
@@ -171,7 +172,7 @@ app.post(
171172
sessionController.startSession,
172173
(req, res) => res.status(200).json({ sessionId: res.locals.ssid })
173174
);
174-
175+
let getusername ='';
175176
//confirming whether user is logged in for index.tsx rendering
176177
app.get('/loggedIn', sessionController.isLoggedIn, (req, res) =>
177178
res.status(200).json(res.locals.loggedIn)

0 commit comments

Comments
 (0)