Skip to content

Commit

Permalink
users joined the room,left etc working , css-loader worksgit add .git…
Browse files Browse the repository at this point in the history
… add .git add .
  • Loading branch information
roshni committed Sep 24, 2018
1 parent 9756236 commit 54355e5
Show file tree
Hide file tree
Showing 10 changed files with 84 additions and 154 deletions.
26 changes: 15 additions & 11 deletions build.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
const webpack = require('webpack');
const webpack = require("webpack");

const plugins = [];

if (require.main == module) {
plugins.push(
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: JSON.stringify('production')
"process.env": {
NODE_ENV: JSON.stringify("production")
}
}),
new webpack.optimize.UglifyJsPlugin({
Expand All @@ -18,24 +18,28 @@ if (require.main == module) {
}

const conf = {
entry: ['babel-polyfill', __dirname + '/src/start.js'],
entry: ["babel-polyfill", __dirname + "/src/start.js"],
output: {
path: __dirname,
filename: 'bundle.js'
filename: "bundle.js"
},
plugins: plugins,
module: {
loaders: [
{
test: /\.js$/,
loader: 'babel-loader',
loader: "babel-loader",
query: {
presets: [['es2015'], ['react']],
presets: [["es2015"], ["react"]],
plugins: [
'transform-async-to-generator',
'transform-object-rest-spread'
"transform-async-to-generator",
"transform-object-rest-spread"
]
}
},
{
test: /\.css$/,
loaders: ["style-loader", "css-loader"]
}
]
}
Expand All @@ -51,10 +55,10 @@ if (require.main == module) {
}
});
} else {
module.exports = require('webpack-dev-middleware')(webpack(conf), {
module.exports = require("webpack-dev-middleware")(webpack(conf), {
watchOptions: {
aggregateTimeout: 300
},
publicPath: '/'
publicPath: "/"
});
}
60 changes: 37 additions & 23 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -157,44 +157,58 @@ io.on("connection", function(socket) {
onlineUsers[socketId] = userId;

let arrayOfuserIds = Object.values(onlineUsers);
let roomUsers = [];
/*************************************Join a Room***************************************************/

socket.on("room", data => {
console.log("users online", onlineUsers);
console.log("in joining room in SERVER");
console.log("room data", data);
socket.join(data.room, () => {
let rooms = Object.keys(socket.rooms);
console.log(rooms); // [ <socket.id>, 'room 237' ]
});
});
/****************************************************************************************************/
getUsersByIds(arrayOfuserIds)
.then(({ rows }) => {
socket.emit("onlineUsers", rows);
})
.catch(function(err) {
console.log("Error occured in getting users by ids:", err);
console.log("room:", rooms); // [ <socket.id>, 'room 237' ]
let roomClients = io.sockets.adapter.rooms[data.room].sockets;
let userRoom = Object.keys(roomClients);
roomUsers = Object.keys(onlineUsers)
.filter(key => userRoom.includes(key))
.reduce((obj, key) => {
obj[key] = onlineUsers[key];
return obj;
}, {});
console.log("filtered:", roomUsers);
});
/****************************************************************************************************/
let arrayRoomUserIds = Object.values(roomUsers);

if (Object.values(onlineUsers).filter(id => id == userId).length == 1) {
/* or use ---if(arrayOfuserIds.indexOf(userId)==arrayOfuserIds.length - 1){*/
getUserDetails(userId)
getUsersByIds(arrayRoomUserIds)
.then(({ rows }) => {
socket.broadcast.emit("userJoined", rows[0]);
socket.emit("roomUsers", rows);
})
.catch(function(err) {
console.log(
"Error occured in getting last joined user details",
err
);
console.log("Error occured in getting room users by ids:", err);
});
}
/************************************************************user joined*******************************/
if (Object.values(roomUsers).filter(id => id == userId).length == 1) {
/* or use ---if(arrayOfuserIds.indexOf(userId)==arrayOfuserIds.length - 1){*/
getUserDetails(userId)
.then(({ rows }) => {
socket.broadcast.to(data.room).emit("userJoined", rows[0]);
})
.catch(function(err) {
console.log(
"Error occured in getting last joined user in room details",
err
);
});
}
});

socket.on("disconnect", () => {
delete onlineUsers[socket.id];
socket.on("leaveRoom", data => {
delete roomUsers[socket.id];
//check if the users are in object.values(userid ) then emit
if (!Object.values(onlineUsers).includes(userId)) {
socket.broadcast.emit("userLeft", userId);
if (!Object.values(roomUsers).includes(userId)) {
socket.broadcast.to(data.room).emit("userLeft", userId);
}
});
socket.on("disconnect", () => {});
});
16 changes: 0 additions & 16 deletions public/style.css
Original file line number Diff line number Diff line change
@@ -1,19 +1,3 @@
@import "codemirror/lib/codemirror.css";
@import "codemirror/theme/monokai.css";
@import "codemirror/theme/bespin.css";
@import "codemirror/theme/3024-day.css";
@import "codemirror/theme/3024-night.css";
@import "codemirror/theme/cobalt.css";
@import "codemirror/theme/eclipse.css";
@import "codemirror/theme/dracula.css";
@import "codemirror/theme/isotope.css";
@import "codemirror/theme/duotone-light.css";
@import "codemirror/theme/icecoder.css";
@import "codemirror/theme/material.css";
@import "codemirror/theme/midnight.css";
@import "codemirror/theme/solarized.css";
@import "codemirror/addon/lint/lint.css";

body {
font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
font-size: 14px;
Expand Down
6 changes: 3 additions & 3 deletions src/actions.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
export function onlineUsers(onlineUsers) {
export function roomUsers(users) {
return {
type: "ONLINE_USERS",
onlineUsers
type: "ROOM_USERS",
users
};
}
export function userJoined(joinedUser) {
Expand Down
8 changes: 1 addition & 7 deletions src/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,13 +51,7 @@ export default class App extends React.Component {
<Route
exact
path="/sharecode"
render={() => (
<CodeShare
id={id}
fname={fname}
lname={lname}
/>
)}
render={() => <CodeShare id={id} />}
/>
<Route
exact
Expand Down
16 changes: 16 additions & 0 deletions src/codeeditor.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,22 @@ import "codemirror/mode/php/php";
import "codemirror/mode/erlang/erlang";
import "codemirror/mode/coffeescript/coffeescript";
import "codemirror/mode/crystal/crystal";
import "codemirror/addon/lint/lint.css";
import "codemirror/lib/codemirror.css";
import "codemirror/theme/monokai.css";
import "codemirror/theme/bespin.css";
import "codemirror/theme/3024-day.css";
import "codemirror/theme/3024-night.css";
import "codemirror/theme/cobalt.css";
import "codemirror/theme/eclipse.css";
import "codemirror/theme/dracula.css";
import "codemirror/theme/isotope.css";
import "codemirror/theme/duotone-light.css";
import "codemirror/theme/icecoder.css";
import "codemirror/theme/material.css";
import "codemirror/theme/midnight.css";
import "codemirror/theme/solarized.css";
import "codemirror/addon/lint/lint.css";
import { emit } from "./socket";
import RoomUsers from "./roomusers";
/***********************************************************************************************************/
Expand Down
14 changes: 7 additions & 7 deletions src/reducer.js
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
const INITIAL_STATE = {};
const INITIAL_STATE = {
users: []
};

export function reducer(state = INITIAL_STATE, action) {
if (action.type == "ONLINE_USERS") {
state = { ...state, onlineUsers: action.onlineUsers };
if (action.type == "ROOM_USERS") {
state = { ...state, users: action.users };
}

if (action.type == "USER_JOINED") {
state = {
...state,
onlineUsers: [action.joinedUser, ...state.onlineUsers]
onlineUsers: [action.joinedUser, ...state.users]
};
}
if (action.type == "USER_LEFT") {
state = {
...state,
onlineUsers: state.onlineUsers.filter(
user => user.id != action.leftUserId
)
users: state.users.filter(user => user.id != action.leftUserId)
};
}
return state;
Expand Down
83 changes: 0 additions & 83 deletions src/reducer0.js

This file was deleted.

3 changes: 2 additions & 1 deletion src/roomusers.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ class RoomUsers extends Component {
}

render() {
console.log("users:", this.props.users);
if (!this.props.users) {
return null;
}
Expand All @@ -17,7 +18,7 @@ class RoomUsers extends Component {
<h3>Users Coding Together</h3>
{this.props.users.map(user => (
<div className="roomuser" key={user.id}>
{user.user}
{user.fname} {user.lname}
</div>
))}
</div>
Expand Down
6 changes: 3 additions & 3 deletions src/socket.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import * as io from "socket.io-client";
import { onlineUsers, userJoined, userLeft } from "./actions";
import { roomUsers, userJoined, userLeft } from "./actions";

let socket;
export function getSocket(store) {
if (!socket) {
socket = io.connect();
socket.on("onlineUsers", data => {
store.dispatch(onlineUsers(data));
socket.on("roomUsers", data => {
store.dispatch(roomUsers(data));
});

socket.on("userJoined", data => {
Expand Down

0 comments on commit 54355e5

Please sign in to comment.