Skip to content

Commit 17fdef0

Browse files
committed
moved Lobby to it's own folder, added Announcement component
1 parent 8e81459 commit 17fdef0

File tree

4 files changed

+55
-57
lines changed

4 files changed

+55
-57
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import React from 'react';
2+
import ReactMarkdown from 'react-markdown';
3+
import { makeStyles } from '@material-ui/core/styles';
4+
import Paper from '@material-ui/core/Paper';
5+
import { lcFetch } from '../../lib/fetch';
6+
7+
const useStyles = makeStyles({
8+
root: {
9+
padding: '1em',
10+
marginTop: '1em',
11+
marginBottom: '1em',
12+
},
13+
});
14+
15+
function Announcements() {
16+
const [announcements, setAnnouncements] = React.useState('');
17+
const classes = useStyles();
18+
19+
React.useEffect(() => {
20+
lcFetch('/api/announcements')
21+
.then((data) => {
22+
if (!data.ok) {
23+
throw new Error();
24+
}
25+
return data.text();
26+
})
27+
.then((data) => {
28+
setAnnouncements(data);
29+
})
30+
.catch((err) => {
31+
throw err;
32+
});
33+
}, []);
34+
35+
return (
36+
<Paper className={classes.root}>
37+
<ReactMarkdown
38+
linkTarget="_blank"
39+
source={announcements}
40+
/>
41+
</Paper>
42+
);
43+
}
44+
45+
export default Announcements;

client/src/components/Lobby.js renamed to client/src/components/Lobby/index.js

Lines changed: 9 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import React from 'react';
2-
import ReactMarkdown from 'react-markdown';
32
import { connect, useDispatch } from 'react-redux';
43
import { Link } from 'react-router-dom';
54
import PropTypes from 'prop-types';
@@ -15,15 +14,14 @@ import Button from '@material-ui/core/Button';
1514
import Alert from '@material-ui/lab/Alert';
1615
import ListSubheader from '@material-ui/core/ListSubheader';
1716
import AddIcon from '@material-ui/icons/Add';
18-
// import AddRoomDialog from './AddRoomDialog';
19-
import RoomConfigureDialog from './RoomConfigureDialog';
20-
import RoomListItem from './RoomListItem';
21-
import EventListItem from './common/EventListItem';
22-
import LobbyUserList from './LobbyUserList';
23-
import { lcFetch } from '../lib/fetch';
24-
import { createRoom } from '../store/rooms/actions';
17+
import RoomConfigureDialog from '../RoomConfigureDialog';
18+
import RoomListItem from '../RoomListItem';
19+
import EventListItem from '../common/EventListItem';
20+
import UserList from './UserList';
21+
import Announcements from './Announcements';
22+
import { createRoom } from '../../store/rooms/actions';
2523

26-
/**
24+
/**-
2725
* Lobby:
2826
* Has 2 parts: room list and user list
2927
* should render with tabs on mobile like the Room page
@@ -69,11 +67,6 @@ const useStyles = makeStyles((theme) => ({
6967
backgroundColor: theme.palette.primary.dark,
7068
},
7169
},
72-
announcements: {
73-
padding: '1em',
74-
marginTop: '1em',
75-
marginBottom: '1em',
76-
},
7770
userList: {
7871
display: 'flex',
7972
flexDirection: 'column',
@@ -174,7 +167,6 @@ function Lobby({
174167
const classes = useStyles();
175168
const dispatch = useDispatch();
176169
const [createRoomDialogOpen, setCreateRoomDialogOpen] = React.useState(false);
177-
const [announcements, setAnnouncements] = React.useState('');
178170
const events = rooms.filter((room) => room.type !== 'normal');
179171
const publicRooms = rooms.filter((room) => !room.private && room.type === 'normal');
180172
const privateRooms = rooms.filter((room) => !!room.private && room.type === 'normal');
@@ -184,22 +176,6 @@ function Lobby({
184176
dispatch(createRoom(options));
185177
};
186178

187-
React.useEffect(() => {
188-
lcFetch('/api/announcements')
189-
.then((data) => {
190-
if (!data.ok) {
191-
throw new Error();
192-
}
193-
return data.text();
194-
})
195-
.then((data) => {
196-
setAnnouncements(data);
197-
})
198-
.catch((err) => {
199-
throw err;
200-
});
201-
}, []);
202-
203179
return (
204180
<div className={classes.root}>
205181
<Grid
@@ -218,14 +194,7 @@ function Lobby({
218194
maxWidth="md"
219195
disableGutters
220196
>
221-
{ announcements && (
222-
<Paper className={classes.announcements}>
223-
<ReactMarkdown
224-
linkTarget="_blank"
225-
source={announcements}
226-
/>
227-
</Paper>
228-
)}
197+
<Announcements />
229198
{ showAlert && (
230199
<Alert
231200
className={classes.alert}
@@ -271,22 +240,6 @@ function Lobby({
271240
</div>
272241

273242
<Paper>
274-
<List subheader={<ListSubheader>Public Rooms</ListSubheader>}>
275-
{publicRooms.map((room) => (
276-
<RoomListItem
277-
key={room._id}
278-
room={room}
279-
/>
280-
))}
281-
</List>
282-
<List subheader={<ListSubheader>Public Rooms</ListSubheader>}>
283-
{publicRooms.map((room) => (
284-
<RoomListItem
285-
key={room._id}
286-
room={room}
287-
/>
288-
))}
289-
</List>
290243
<List subheader={<ListSubheader>Public Rooms</ListSubheader>}>
291244
{publicRooms.map((room) => (
292245
<RoomListItem
@@ -309,7 +262,7 @@ function Lobby({
309262
</div>
310263
</Grid>
311264
<Grid item xs={3} className={classes.userList}>
312-
<LobbyUserList users={USERS} />
265+
<UserList users={USERS} />
313266
</Grid>
314267
</Grid>
315268
<RoomConfigureDialog

client/src/components/Navigation.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import Admin from './Admin';
1515
import { closeMessage } from '../store/messages/actions';
1616
import Text from './Text';
1717

18-
const Lobby = lazy(() => import('./Lobby'));
18+
const Lobby = lazy(() => import('./Lobby/index'));
1919
const Room = lazy(() => import('./Room/index'));
2020
const Profile = lazy(() => import('./common/Profile'));
2121

0 commit comments

Comments
 (0)