Skip to content

Commit e8bd068

Browse files
committed
Merge branch 'Lauren' of https://github.com/oslabs-beta/ReacType into lauren
2 parents fcfd1c3 + 6b05940 commit e8bd068

File tree

2 files changed

+81
-68
lines changed

2 files changed

+81
-68
lines changed

app/src/components/left/RoomsContainer.tsx

Lines changed: 36 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -59,23 +59,6 @@ import {
5959
addComponentToContext
6060
} from '../../../src/redux/reducers/slice/contextReducer';
6161

62-
// // for websockets
63-
// // Part - join room and room code functionality
64-
let socket;
65-
66-
//function to create HTML elements and update the position of the cursorr.
67-
// function getCursor(id) {
68-
// let elementId = 'cursor-' + id;
69-
// let element = document.getElementById(elementId);
70-
// if (element == null) {
71-
// element = document.createElement('div');
72-
// element.id = elementId;
73-
// element.className = 'cursor';
74-
// document.appendChild(element);
75-
// }
76-
// return element;
77-
// }
78-
7962
const RoomsContainer = () => {
8063
const dispatch = useDispatch();
8164
//roomCode/userName for emiting to socket io, userList for displaying user List receiving from back end, userJoined fo conditional rendering between join and leave room.
@@ -86,21 +69,18 @@ const RoomsContainer = () => {
8669
(store: RootState) => store.roomSlice.userJoined
8770
);
8871

72+
// for websockets - initialize socket connection passing in roomCode
8973
function initSocketConnection(roomCode: string) {
90-
// if (socket) socket.disconnect(); //edge case: disconnect previous socket connection
91-
// // establishing client and server connection
92-
// socket = io(API_BASE_URL, {
93-
// transports: ['websocket']
94-
// });
95-
74+
// helper function to create socket connection
9675
initializeSocket();
76+
// assign socket to result of helper function to return socket created
9777
const socket = getSocket();
98-
// only create a new connection if not already connected
78+
// if socket was created correctly and exists
9979
if (socket) {
10080
//run everytime when a client connects to server
10181
socket.on('connect', () => {
10282
socket.emit('joining', userName, roomCode);
103-
console.log(`${userName} Joined room ${roomCode} from RoomsContainer`);
83+
// console.log(`${userName} Joined room ${roomCode} from RoomsContainer`);
10484
});
10585

10686
//If you are the host: send current state to server when a new user joins
@@ -112,7 +92,7 @@ const RoomsContainer = () => {
11292
//If you are the new user: receive the state from the host
11393
socket.on('server emitting state from host', (state, callback) => {
11494
//dispatching new state to change user current state
115-
console.log('state recieved by new join:', state);
95+
// console.log('state received by new join:', state);
11696
store.dispatch(allCooperativeState(state.appState));
11797
store.dispatch(codePreviewCooperative(state.codePreviewCooperative));
11898
store.dispatch(cooperativeStyle(state.styleSlice));
@@ -123,24 +103,27 @@ const RoomsContainer = () => {
123103
socket.on('updateUserList', (newUserList) => {
124104
//console.log('user list received from server');
125105
dispatch(setUserList(newUserList));
126-
// console.log('userList:', userList);
127106
});
128107

108+
// dispatch add child to local state when element has been added by another user
129109
socket.on('child data from server', (childData: object) => {
130110
// console.log('child data received by users', childData);
131111
store.dispatch(addChild(childData));
132112
});
133113

114+
// dispatch changeFocus to local state when another user has changed focus by selecting element on canvas
134115
socket.on('focus data from server', (focusData: object) => {
135116
// console.log('focus data received from server', focusData);
136117
store.dispatch(changeFocus(focusData));
137118
});
138119

120+
// dispatch deleteChild to local state when another user has deleted an element
139121
socket.on('delete data from server', (deleteData: object) => {
140122
// console.log('delete data received from server', deleteData);
141123
store.dispatch(deleteChild(deleteData));
142124
});
143125

126+
// dispatch delete element to local state when another user has deleted an element
144127
socket.on(
145128
'delete element data from server',
146129
(deleteElementData: object) => {
@@ -149,6 +132,7 @@ const RoomsContainer = () => {
149132
}
150133
);
151134

135+
// dispatch all updates to local state when another user has saved from Bottom Panel
152136
socket.on('update data from server', (updateData: BottomPanelObj) => {
153137
// console.log('update data received from server', updateData);
154138
store.dispatch(
@@ -183,76 +167,88 @@ const RoomsContainer = () => {
183167
);
184168
});
185169

170+
// dispatch update style in local state when CSS panel is updated on their side
186171
socket.on('update css data from server', (cssData: object) => {
187172
// console.log('CSS data received from server', cssData);
188173
store.dispatch(updateStylesheet(cssData));
189174
});
190175

176+
// dispatch new item position in local state when item position is changed by another user
191177
socket.on(
192178
'item position data from server',
193179
(itemPositionData: object) => {
194-
console.log(
195-
'item position data received from server',
196-
itemPositionData
197-
);
180+
// console.log(
181+
// 'item position data received from server',
182+
// itemPositionData
183+
// );
198184
store.dispatch(changePosition(itemPositionData));
199185
}
200186
);
201187

188+
// dispatch addComponent to local state when new component is created by another user
202189
socket.on('new component data from server', (newComponent: object) => {
203190
store.dispatch(addComponent(newComponent));
204191
});
205192

193+
// dispatch addElement to local state when new element is created by another user
206194
socket.on('new element data from server', (newElement: object) => {
207195
store.dispatch(addElement(newElement));
208196
});
209197

198+
// dispatch addState to local state when component state has been changed by another user
210199
socket.on(
211200
'new component state data from server',
212201
(componentState: object) => {
213202
store.dispatch(addState(componentState));
214203
}
215204
);
216205

206+
// dispatch deleteState to local state when component state has been deleted by another user
217207
socket.on(
218208
'delete component state data from server',
219209
(componentStateDelete: object) => {
220210
store.dispatch(deleteState(componentStateDelete));
221211
}
222212
);
223213

214+
// dispatch addPassedInProps to local state when p.I.P have been added by another user
224215
socket.on(
225216
'new PassedInProps data from server',
226217
(passedInProps: object) => {
227218
store.dispatch(addPassedInProps(passedInProps));
228219
}
229220
);
230221

222+
// dispatch deletePassedInProps to local state when p.I.P have been deleted by another user
231223
socket.on(
232224
'PassedInProps delete data from server',
233225
(passedInProps: object) => {
234226
store.dispatch(deletePassedInProps(passedInProps));
235227
}
236228
);
237229

230+
// dispatch addContext to local state when context has been changed by another user
238231
socket.on('new context from server', (context: AddContextPayload) => {
239232
store.dispatch(addContext(context));
240233
});
241234

235+
// dispatch addContextValues to local state when context values are added by another user
242236
socket.on(
243237
'new context value from server',
244238
(contextVal: AddContextValuesPayload) => {
245239
store.dispatch(addContextValues(contextVal));
246240
}
247241
);
248242

243+
// dispatch deleteContext to local state when context is deleted by another user
249244
socket.on(
250245
'delete context data from server',
251246
(context: DeleteContextPayload) => {
252247
store.dispatch(deleteContext(context));
253248
}
254249
);
255250

251+
// dispatch addComponentToContext to local state when context is assigned to component by another user
256252
socket.on('assign context data from server', (data) => {
257253
store.dispatch(
258254
addComponentToContext({
@@ -267,6 +263,7 @@ const RoomsContainer = () => {
267263
}
268264
}
269265

266+
// invoked when join room in invoked passing in room code to init socket for that room
270267
function handleUserEnteredRoom(roomCode) {
271268
initSocketConnection(roomCode);
272269
}
@@ -276,17 +273,16 @@ const RoomsContainer = () => {
276273
//edge case: if userList is not empty, reset it to empty array
277274
if (userList.length !== 0) dispatch(setUserList([]));
278275
handleUserEnteredRoom(roomCode);
279-
dispatch(setRoomCode(roomCode)); //?
276+
dispatch(setRoomCode(roomCode)); // setting state to roomCode input
280277
dispatch(setUserJoined(true)); //setting joined room to true for rendering leave room button
281278
}
282279

280+
// leave room function
283281
function leaveRoom() {
284-
let socket = getSocket();
282+
let socket = getSocket(); // assigning socket var to get socket helper func
285283
if (socket) {
286284
socket.disconnect(); //disconnecting socket from server
287-
console.log(socket);
288-
socket = null;
289-
console.log('user leaves the room');
285+
// console.log('user leaves the room');
290286
}
291287
//reset all state values
292288
dispatch(setRoomCode(''));
@@ -303,13 +299,15 @@ const RoomsContainer = () => {
303299
return userName.length === 0 || roomCode.length === 0;
304300
}
305301

306-
// Turning off the cursor live tracking on canvas with the press of a button.
302+
// handle keydown enter to join room rather than click if room code has been entered
307303
const handleKeyDown = (e) => {
308304
if (e.key === 'Enter' && e.target.id === 'filled-hidden-label-small') {
309305
e.preventDefault();
310306
joinRoom();
311307
}
312308
};
309+
310+
// color array for live cursor tracking - if more than six users join, cursor defaults to black currently
313311
const userColors = [
314312
'#FC00BD',
315313
'#D0FC00',
@@ -460,7 +458,7 @@ const RoomsContainer = () => {
460458
fontSize: 'smaller'
461459
}}
462460
>
463-
Note: Max Occupancy: 6 Users
461+
For optimal collaboration experience, limit to 6 users per room
464462
</Typography>
465463
</Stack>
466464
</div>

0 commit comments

Comments
 (0)