From 7c134039212fd0b60eb7a84e5663ead46ce4f800 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?M=C3=A9sz=C3=A1ros=20Mih=C3=A1ly?=
Date: Wed, 6 May 2020 23:39:40 +0200
Subject: [PATCH 1/2] Add help and about modal
---
app/src/actions/roomActions.js | 12 +++
app/src/components/Controls/About.js | 133 ++++++++++++++++++++++++++
app/src/components/Controls/Help.js | 99 +++++++++++++++++++
app/src/components/Controls/TopBar.js | 54 +++++++++++
app/src/components/Room.js | 9 ++
app/src/reducers/room.js | 16 ++++
6 files changed, 323 insertions(+)
create mode 100644 app/src/components/Controls/About.js
create mode 100644 app/src/components/Controls/Help.js
diff --git a/app/src/actions/roomActions.js b/app/src/actions/roomActions.js
index b90bf1b..7c44835 100644
--- a/app/src/actions/roomActions.js
+++ b/app/src/actions/roomActions.js
@@ -70,6 +70,18 @@ export const setExtraVideoOpen = (extraVideoOpen) =>
payload : { extraVideoOpen }
});
+export const setHelpOpen = (helpOpen) =>
+ ({
+ type : 'SET_HELP_OPEN',
+ payload : { helpOpen }
+ });
+
+export const setAboutOpen = (aboutOpen) =>
+ ({
+ type : 'SET_ABOUT_OPEN',
+ payload : { aboutOpen }
+ });
+
export const setSettingsTab = (tab) =>
({
type : 'SET_SETTINGS_TAB',
diff --git a/app/src/components/Controls/About.js b/app/src/components/Controls/About.js
new file mode 100644
index 0000000..d361a8c
--- /dev/null
+++ b/app/src/components/Controls/About.js
@@ -0,0 +1,133 @@
+import React from 'react';
+import { connect } from 'react-redux';
+import { withStyles } from '@material-ui/core/styles';
+import { withRoomContext } from '../../RoomContext';
+import * as roomActions from '../../actions/roomActions';
+import PropTypes from 'prop-types';
+import { FormattedMessage } from 'react-intl';
+
+import Dialog from '@material-ui/core/Dialog';
+import DialogTitle from '@material-ui/core/DialogTitle';
+import DialogActions from '@material-ui/core/DialogActions';
+import DialogContent from '@material-ui/core/DialogContent';
+import DialogContentText from '@material-ui/core/DialogContentText';
+import Link from '@material-ui/core/Link';
+import Button from '@material-ui/core/Button';
+
+const styles = (theme) =>
+ ({
+ dialogPaper :
+ {
+ width : '30vw',
+ [theme.breakpoints.down('lg')] :
+ {
+ width : '40vw'
+ },
+ [theme.breakpoints.down('md')] :
+ {
+ width : '50vw'
+ },
+ [theme.breakpoints.down('sm')] :
+ {
+ width : '70vw'
+ },
+ [theme.breakpoints.down('xs')] :
+ {
+ width : '90vw'
+ }
+ },
+ logo :
+ {
+ marginRight : 'auto'
+ },
+ link :
+ {
+ display : 'block',
+ textAlign : 'center'
+ }
+ });
+
+const About = ({
+ aboutOpen,
+ handleCloseAbout,
+ classes
+}) =>
+{
+ return (
+
+ );
+};
+
+About.propTypes =
+{
+ roomClient : PropTypes.object.isRequired,
+ aboutOpen : PropTypes.bool.isRequired,
+ handleCloseAbout : PropTypes.func.isRequired,
+ classes : PropTypes.object.isRequired
+};
+
+const mapStateToProps = (state) =>
+ ({
+ aboutOpen : state.room.aboutOpen
+ });
+
+const mapDispatchToProps = {
+ handleCloseAbout : roomActions.setAboutOpen
+};
+
+export default withRoomContext(connect(
+ mapStateToProps,
+ mapDispatchToProps,
+ null,
+ {
+ areStatesEqual : (next, prev) =>
+ {
+ return (
+ prev.room.aboutOpen === next.room.aboutOpen
+ );
+ }
+ }
+)(withStyles(styles)(About)));
\ No newline at end of file
diff --git a/app/src/components/Controls/Help.js b/app/src/components/Controls/Help.js
new file mode 100644
index 0000000..67be03f
--- /dev/null
+++ b/app/src/components/Controls/Help.js
@@ -0,0 +1,99 @@
+import React from 'react';
+import { connect } from 'react-redux';
+import { withStyles } from '@material-ui/core/styles';
+import { withRoomContext } from '../../RoomContext';
+import * as roomActions from '../../actions/roomActions';
+import PropTypes from 'prop-types';
+import { FormattedMessage } from 'react-intl';
+
+import Dialog from '@material-ui/core/Dialog';
+import DialogTitle from '@material-ui/core/DialogTitle';
+import DialogActions from '@material-ui/core/DialogActions';
+import Button from '@material-ui/core/Button';
+
+const styles = (theme) =>
+ ({
+ dialogPaper :
+ {
+ width : '30vw',
+ [theme.breakpoints.down('lg')] :
+ {
+ width : '40vw'
+ },
+ [theme.breakpoints.down('md')] :
+ {
+ width : '50vw'
+ },
+ [theme.breakpoints.down('sm')] :
+ {
+ width : '70vw'
+ },
+ [theme.breakpoints.down('xs')] :
+ {
+ width : '90vw'
+ }
+ }
+ });
+
+const Help = ({
+ helpOpen,
+ handleCloseHelp,
+ classes
+}) =>
+{
+ return (
+
+ );
+};
+
+Help.propTypes =
+{
+ roomClient : PropTypes.object.isRequired,
+ helpOpen : PropTypes.bool.isRequired,
+ handleCloseHelp : PropTypes.func.isRequired,
+ classes : PropTypes.object.isRequired
+};
+
+const mapStateToProps = (state) =>
+ ({
+ helpOpen : state.room.helpOpen
+ });
+
+const mapDispatchToProps = {
+ handleCloseHelp : roomActions.setHelpOpen
+};
+
+export default withRoomContext(connect(
+ mapStateToProps,
+ mapDispatchToProps,
+ null,
+ {
+ areStatesEqual : (next, prev) =>
+ {
+ return (
+ prev.room.helpOpen === next.room.helpOpen
+ );
+ }
+ }
+)(withStyles(styles)(Help)));
\ No newline at end of file
diff --git a/app/src/components/Controls/TopBar.js b/app/src/components/Controls/TopBar.js
index 6422788..028b883 100644
--- a/app/src/components/Controls/TopBar.js
+++ b/app/src/components/Controls/TopBar.js
@@ -36,6 +36,8 @@ import VideoCallIcon from '@material-ui/icons/VideoCall';
import Button from '@material-ui/core/Button';
import Tooltip from '@material-ui/core/Tooltip';
import MoreIcon from '@material-ui/icons/MoreVert';
+import HelpIcon from '@material-ui/icons/Help';
+import InfoIcon from '@material-ui/icons/Info';
const styles = (theme) =>
({
@@ -192,6 +194,8 @@ const TopBar = (props) =>
onFullscreen,
setSettingsOpen,
setExtraVideoOpen,
+ setHelpOpen,
+ setAboutOpen,
setLockDialogOpen,
toggleToolArea,
openUsersTab,
@@ -483,6 +487,46 @@ const TopBar = (props) =>
/>
+
+
}
@@ -694,6 +738,8 @@ TopBar.propTypes =
setToolbarsVisible : PropTypes.func.isRequired,
setSettingsOpen : PropTypes.func.isRequired,
setExtraVideoOpen : PropTypes.func.isRequired,
+ setHelpOpen : PropTypes.func.isRequired,
+ setAboutOpen : PropTypes.func.isRequired,
setLockDialogOpen : PropTypes.func.isRequired,
toggleToolArea : PropTypes.func.isRequired,
openUsersTab : PropTypes.func.isRequired,
@@ -741,6 +787,14 @@ const mapDispatchToProps = (dispatch) =>
{
dispatch(roomActions.setExtraVideoOpen(extraVideoOpen));
},
+ setHelpOpen : (helpOpen) =>
+ {
+ dispatch(roomActions.setHelpOpen(helpOpen));
+ },
+ setAboutOpen : (aboutOpen) =>
+ {
+ dispatch(roomActions.setAboutOpen(aboutOpen));
+ },
setLockDialogOpen : (lockDialogOpen) =>
{
dispatch(roomActions.setLockDialogOpen(lockDialogOpen));
diff --git a/app/src/components/Room.js b/app/src/components/Room.js
index cdda66f..505fc69 100644
--- a/app/src/components/Room.js
+++ b/app/src/components/Room.js
@@ -25,6 +25,8 @@ import Settings from './Settings/Settings';
import TopBar from './Controls/TopBar';
import WakeLock from 'react-wakelock-react16';
import ExtraVideo from './Controls/ExtraVideo';
+import Help from './Controls/Help';
+import About from './Controls/About';
const TIMEOUT = 5 * 1000;
@@ -222,6 +224,13 @@ class Room extends React.PureComponent
{ room.extraVideoOpen &&
}
+ { room.helpOpen &&
+
+ }
+ { room.aboutOpen &&
+
+ }
+
);
}
diff --git a/app/src/reducers/room.js b/app/src/reducers/room.js
index 6d47d42..1a4b99e 100644
--- a/app/src/reducers/room.js
+++ b/app/src/reducers/room.js
@@ -22,6 +22,8 @@ const initialState =
spotlights : [],
settingsOpen : false,
extraVideoOpen : false,
+ helpOpen : false,
+ aboutOpen : false,
currentSettingsTab : 'media', // media, appearence, advanced
lockDialogOpen : false,
joined : false,
@@ -130,6 +132,20 @@ const room = (state = initialState, action) =>
return { ...state, extraVideoOpen };
}
+ case 'SET_HELP_OPEN':
+ {
+ const { helpOpen } = action.payload;
+
+ return { ...state, helpOpen };
+ }
+
+ case 'SET_ABOUT_OPEN':
+ {
+ const { aboutOpen } = action.payload;
+
+ return { ...state, aboutOpen };
+ }
+
case 'SET_SETTINGS_TAB':
{
const { tab } = action.payload;
From 3b779bd81d1a2c61400667618c5bb90f9255c8f8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?M=C3=A9sz=C3=A1ros=20Mih=C3=A1ly?=
Date: Fri, 8 May 2020 00:20:35 +0200
Subject: [PATCH 2/2] Add shotcuts to help and add labels
---
app/src/components/Controls/Help.js | 75 +++++++++++++++++++++++++--
app/src/components/Controls/TopBar.js | 8 +--
app/src/translations/cn.json | 5 +-
app/src/translations/cs.json | 3 ++
app/src/translations/de.json | 3 ++
app/src/translations/dk.json | 3 ++
app/src/translations/el.json | 3 ++
app/src/translations/en.json | 3 ++
app/src/translations/es.json | 3 ++
app/src/translations/fr.json | 3 ++
app/src/translations/hr.json | 3 ++
app/src/translations/hu.json | 3 ++
app/src/translations/it.json | 5 +-
app/src/translations/lv.json | 3 ++
app/src/translations/nb.json | 3 ++
app/src/translations/pl.json | 3 ++
app/src/translations/pt.json | 3 ++
app/src/translations/ro.json | 3 ++
app/src/translations/tr.json | 3 ++
app/src/translations/uk.json | 3 ++
20 files changed, 132 insertions(+), 9 deletions(-)
diff --git a/app/src/components/Controls/Help.js b/app/src/components/Controls/Help.js
index 67be03f..3091ec4 100644
--- a/app/src/components/Controls/Help.js
+++ b/app/src/components/Controls/Help.js
@@ -4,13 +4,26 @@ import { withStyles } from '@material-ui/core/styles';
import { withRoomContext } from '../../RoomContext';
import * as roomActions from '../../actions/roomActions';
import PropTypes from 'prop-types';
-import { FormattedMessage } from 'react-intl';
+import { useIntl, FormattedMessage } from 'react-intl';
import Dialog from '@material-ui/core/Dialog';
import DialogTitle from '@material-ui/core/DialogTitle';
import DialogActions from '@material-ui/core/DialogActions';
+import DialogContent from '@material-ui/core/DialogContent';
+import DialogContentText from '@material-ui/core/DialogContentText';
import Button from '@material-ui/core/Button';
+import Paper from '@material-ui/core/Paper';
+import Tabs from '@material-ui/core/Tabs';
+import Tab from '@material-ui/core/Tab';
+const shortcuts=[
+ { key: 'm', label: 'device.muteAudio', defaultMessage: 'Mute Audio' },
+ { key: 'v', label: 'device.stopVideo', defaultMessage: 'Mute Video' },
+ { key: '1', label: 'label.democratic', defaultMessage: 'Democratic View' },
+ { key: '2', label: 'label.filmstrip', defaultMessage: 'Filmstrip View' },
+ { key: 'space', label: 'me.mutedPTT', defaultMessage: 'Push SPACE to talk' },
+ { key: 'a', label: 'label.advanced', defaultMessage: 'Show advanced information' }
+];
const styles = (theme) =>
({
dialogPaper :
@@ -31,7 +44,27 @@ const styles = (theme) =>
[theme.breakpoints.down('xs')] :
{
width : '90vw'
- }
+ },
+ display : 'flex',
+ flexDirection : 'column'
+ },
+ paper : {
+ padding : theme.spacing(1),
+ textAlign : 'center',
+ color : theme.palette.text.secondary,
+ whiteSpace : 'nowrap',
+ marginRight : theme.spacing(3),
+ marginBottom : theme.spacing(1),
+ minWidth : theme.spacing(8)
+ },
+ shortcuts : {
+ display : 'flex',
+ flexDirection : 'row',
+ alignItems : 'center'
+ },
+ tabsHeader :
+ {
+ flexGrow : 1
}
});
@@ -41,6 +74,8 @@ const Help = ({
classes
}) =>
{
+ const intl = useIntl();
+
return (
+
+
+
+
+
+ {shortcuts.map((value, index) =>
+ {
+ return (
+
+ );
+ })}
+
+
+