From 3c7afd20667f88e5ea1799b8049259f089abcccd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A5var=20Aamb=C3=B8=20Fosstveit?= Date: Tue, 5 May 2020 21:31:21 +0200 Subject: [PATCH] Make buttons in AppBar fit on narrow screens, fixes #279 --- app/src/components/Controls/TopBar.js | 326 ++++++++++++++++++++++---- app/src/translations/cn.json | 1 + app/src/translations/cs.json | 1 + app/src/translations/de.json | 1 + app/src/translations/dk.json | 1 + app/src/translations/el.json | 1 + app/src/translations/en.json | 1 + app/src/translations/es.json | 1 + app/src/translations/fr.json | 1 + app/src/translations/hr.json | 1 + app/src/translations/hu.json | 1 + app/src/translations/it.json | 1 + app/src/translations/lv.json | 1 + app/src/translations/nb.json | 1 + app/src/translations/pl.json | 1 + app/src/translations/pt.json | 1 + app/src/translations/ro.json | 1 + app/src/translations/tr.json | 1 + app/src/translations/uk.json | 1 + 19 files changed, 300 insertions(+), 44 deletions(-) diff --git a/app/src/components/Controls/TopBar.js b/app/src/components/Controls/TopBar.js index cbe4bee..6422788 100644 --- a/app/src/components/Controls/TopBar.js +++ b/app/src/components/Controls/TopBar.js @@ -16,11 +16,13 @@ import AppBar from '@material-ui/core/AppBar'; import Toolbar from '@material-ui/core/Toolbar'; import MenuItem from '@material-ui/core/MenuItem'; import Menu from '@material-ui/core/Menu'; +import Popover from '@material-ui/core/Popover'; import Typography from '@material-ui/core/Typography'; import IconButton from '@material-ui/core/IconButton'; import MenuIcon from '@material-ui/icons/Menu'; import Avatar from '@material-ui/core/Avatar'; import Badge from '@material-ui/core/Badge'; +import Paper from '@material-ui/core/Paper'; import ExtensionIcon from '@material-ui/icons/Extension'; import AccountCircle from '@material-ui/icons/AccountCircle'; import FullScreenIcon from '@material-ui/icons/Fullscreen'; @@ -33,6 +35,7 @@ import LockOpenIcon from '@material-ui/icons/LockOpen'; 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'; const styles = (theme) => ({ @@ -77,9 +80,17 @@ const styles = (theme) => display : 'block' } }, - actionButtons : - { - display : 'flex' + sectionDesktop : { + display : 'none', + [theme.breakpoints.up('md')] : { + display : 'flex' + } + }, + sectionMobile : { + display : 'flex', + [theme.breakpoints.up('md')] : { + display : 'none' + } }, actionButton : { @@ -96,7 +107,7 @@ const styles = (theme) => }, moreAction : { - margin : theme.spacing(0, 0, 0, 1) + margin : theme.spacing(0.5, 0, 0.5, 1.5) } }); @@ -135,16 +146,36 @@ const TopBar = (props) => { const intl = useIntl(); - const [ moreActionsElement, setMoreActionsElement ] = useState(null); + const [ mobileMoreAnchorEl, setMobileMoreAnchorEl ] = useState(null); + const [ anchorEl, setAnchorEl ] = useState(null); + const [ currentMenu, setCurrentMenu ] = useState(null); - const handleMoreActionsOpen = (event) => + const handleExited = () => { - setMoreActionsElement(event.currentTarget); + setCurrentMenu(null); }; - const handleMoreActionsClose = () => + const handleMobileMenuOpen = (event) => { - setMoreActionsElement(null); + setMobileMoreAnchorEl(event.currentTarget); + }; + + const handleMobileMenuClose = () => + { + setMobileMoreAnchorEl(null); + }; + + const handleMenuOpen = (event, menu) => + { + setAnchorEl(event.currentTarget); + setCurrentMenu(menu); + }; + + const handleMenuClose = () => + { + setAnchorEl(null); + + handleMobileMenuClose(); }; const { @@ -171,7 +202,8 @@ const TopBar = (props) => classes } = props; - const isMoreActionsMenuOpen = Boolean(moreActionsElement); + const isMenuOpen = Boolean(anchorEl); + const isMobileMenuOpen = Boolean(mobileMoreAnchorEl); const lockTooltip = room.locked ? intl.formatMessage({ @@ -239,10 +271,15 @@ const TopBar = (props) => { window.config.title ? window.config.title : 'Multiparty meeting' }
-
+
handleMenuOpen(event, 'moreActions')} color='inherit' > @@ -386,52 +423,253 @@ const TopBar = (props) => } -
-
+
+ + + +
+
+ - + { currentMenu === 'moreActions' && + + + { + handleMenuClose(); + setExtraVideoOpen(!room.extraVideoOpen); + }} + > + +

+ +

+
+
+ } + + + { loginEnabled && + + { + handleMenuClose(); + loggedIn ? roomClient.logout() : roomClient.login(); + }} + > + { myPicture ? + + : + + } + { loggedIn ? +

+ +

+ : +

+ +

+ } +
+ } { - handleMoreActionsClose(); - setExtraVideoOpen(!room.extraVideoOpen); + handleMenuClose(); + + if (room.locked) + { + roomClient.unlockRoom(); + } + else + { + roomClient.lockRoom(); + } }} > - + { room.locked ? + + : + + } + { room.locked ? +

+ +

+ : +

+ +

+ } +
+ + { + handleMenuClose(); + setSettingsOpen(!room.settingsOpen); + }} + > +

+

+
+ { lobbyPeers.length > 0 && + + { + handleMenuClose(); + setLockDialogOpen(!room.lockDialogOpen); + }} + > + + + +

+ +

+
+ } + + { + handleMenuClose(); + openUsersTab(); + }} + > + + + +

+ +

+
+ { fullscreenEnabled && + + { + handleMenuClose(); + onFullscreen(); + }} + > + { fullscreen ? + + : + + } +

+ +

+
+ } + handleMenuOpen(event, 'moreActions')} + > + +

+

diff --git a/app/src/translations/cn.json b/app/src/translations/cn.json index 3ead544..097e9b7 100644 --- a/app/src/translations/cn.json +++ b/app/src/translations/cn.json @@ -110,6 +110,7 @@ "label.advanced": null, "label.addVideo": null, "label.promoteAllPeers": null, + "label.moreActions": null, "settings.settings": "设置", "settings.camera": "视频设备", diff --git a/app/src/translations/cs.json b/app/src/translations/cs.json index cd16197..66e72b2 100644 --- a/app/src/translations/cs.json +++ b/app/src/translations/cs.json @@ -109,6 +109,7 @@ "label.advanced": null, "label.addVideo": null, "label.promoteAllPeers": null, + "label.moreActions": null, "settings.settings": "Nastavení", "settings.camera": "Kamera", diff --git a/app/src/translations/de.json b/app/src/translations/de.json index b5015d7..6d72d54 100644 --- a/app/src/translations/de.json +++ b/app/src/translations/de.json @@ -110,6 +110,7 @@ "label.advanced": null, "label.addVideo": null, "label.promoteAllPeers": null, + "label.moreActions": null, "settings.settings": "Einstellungen", "settings.camera": "Kamera", diff --git a/app/src/translations/dk.json b/app/src/translations/dk.json index 9f99a55..351907c 100644 --- a/app/src/translations/dk.json +++ b/app/src/translations/dk.json @@ -110,6 +110,7 @@ "label.advanced": null, "label.addVideo": null, "label.promoteAllPeers": null, + "label.moreActions": null, "settings.settings": "Indstillinger", "settings.camera": "Kamera", diff --git a/app/src/translations/el.json b/app/src/translations/el.json index 47d5fe0..8f34eb1 100644 --- a/app/src/translations/el.json +++ b/app/src/translations/el.json @@ -110,6 +110,7 @@ "label.advanced": null, "label.addVideo": null, "label.promoteAllPeers": null, + "label.moreActions": null, "settings.settings": "Ρυθμίσεις", "settings.camera": "Κάμερα", diff --git a/app/src/translations/en.json b/app/src/translations/en.json index c7447fe..660585d 100644 --- a/app/src/translations/en.json +++ b/app/src/translations/en.json @@ -110,6 +110,7 @@ "label.advanced": "Advanced", "label.addVideo": "Add video", "label.promoteAllPeers": "Promote all", + "label.moreActions": "More actions", "settings.settings": "Settings", "settings.camera": "Camera", diff --git a/app/src/translations/es.json b/app/src/translations/es.json index a630e15..f685b8f 100644 --- a/app/src/translations/es.json +++ b/app/src/translations/es.json @@ -110,6 +110,7 @@ "label.advanced": null, "label.addVideo": null, "label.promoteAllPeers": null, + "label.moreActions": null, "settings.settings": "Ajustes", "settings.camera": "Cámara", diff --git a/app/src/translations/fr.json b/app/src/translations/fr.json index d36e238..d1a67cf 100644 --- a/app/src/translations/fr.json +++ b/app/src/translations/fr.json @@ -110,6 +110,7 @@ "label.advanced": null, "label.addVideo": null, "label.promoteAllPeers": null, + "label.moreActions": null, "settings.settings": "Paramètres", "settings.camera": "Caméra", diff --git a/app/src/translations/hr.json b/app/src/translations/hr.json index 68f8418..f08f516 100644 --- a/app/src/translations/hr.json +++ b/app/src/translations/hr.json @@ -110,6 +110,7 @@ "label.advanced": "Napredno", "label.addVideo": "Dodaj video", "label.promoteAllPeers": "Promoviraj sve", + "label.moreActions": null, "settings.settings": "Postavke", "settings.camera": "Kamera", diff --git a/app/src/translations/hu.json b/app/src/translations/hu.json index 7c2ce89..0d1f419 100644 --- a/app/src/translations/hu.json +++ b/app/src/translations/hu.json @@ -110,6 +110,7 @@ "label.advanced": "Részletek", "label.addVideo": "Videó hozzáadása", "label.promoteAllPeers": "Mindenkit beengedek", + "label.moreActions": null, "settings.settings": "Beállítások", "settings.camera": "Kamera", diff --git a/app/src/translations/it.json b/app/src/translations/it.json index b088fa9..472ce91 100644 --- a/app/src/translations/it.json +++ b/app/src/translations/it.json @@ -109,6 +109,7 @@ "label.advanced": "Avanzate", "label.addVideo": "Aggiungi video", "label.promoteAllPeers": "Promuovi tutti", + "label.moreActions": null, "settings.settings": "Impostazioni", "settings.camera": "Videocamera", diff --git a/app/src/translations/lv.json b/app/src/translations/lv.json index e981b35..dd8fac4 100644 --- a/app/src/translations/lv.json +++ b/app/src/translations/lv.json @@ -107,6 +107,7 @@ "label.appearence": "Izskats", "label.advanced": "Advancēts", "label.addVideo": "Pievienot video", + "label.moreActions": null, "settings.settings": "Iestatījumi", "settings.camera": "Kamera", diff --git a/app/src/translations/nb.json b/app/src/translations/nb.json index 77c4ef5..58e3b08 100644 --- a/app/src/translations/nb.json +++ b/app/src/translations/nb.json @@ -110,6 +110,7 @@ "label.advanced": "Avansert", "label.addVideo": "Legg til video", "label.promoteAllPeers": "Slipp inn alle", + "label.moreActions": "Flere handlinger", "settings.settings": "Innstillinger", "settings.camera": "Kamera", diff --git a/app/src/translations/pl.json b/app/src/translations/pl.json index ffb41ec..923de79 100644 --- a/app/src/translations/pl.json +++ b/app/src/translations/pl.json @@ -110,6 +110,7 @@ "label.advanced": null, "label.addVideo": null, "label.promoteAllPeers": null, + "label.moreActions": null, "settings.settings": "Ustawienia", "settings.camera": "Kamera", diff --git a/app/src/translations/pt.json b/app/src/translations/pt.json index 3861c01..b863098 100644 --- a/app/src/translations/pt.json +++ b/app/src/translations/pt.json @@ -110,6 +110,7 @@ "label.advanced": null, "label.addVideo": null, "label.promoteAllPeers": null, + "label.moreActions": null, "settings.settings": "Definições", "settings.camera": "Camera", diff --git a/app/src/translations/ro.json b/app/src/translations/ro.json index ca906de..624c231 100644 --- a/app/src/translations/ro.json +++ b/app/src/translations/ro.json @@ -110,6 +110,7 @@ "label.advanced": null, "label.addVideo": null, "label.promoteAllPeers": null, + "label.moreActions": null, "settings.settings": "Setări", "settings.camera": "Cameră video", diff --git a/app/src/translations/tr.json b/app/src/translations/tr.json index b53d1ea..8f9c29f 100644 --- a/app/src/translations/tr.json +++ b/app/src/translations/tr.json @@ -110,6 +110,7 @@ "label.advanced": null, "label.addVideo": null, "label.promoteAllPeers": null, + "label.moreActions": null, "settings.settings": "Ayarlar", "settings.camera": "Kamera", diff --git a/app/src/translations/uk.json b/app/src/translations/uk.json index d9ceaa8..db4a082 100644 --- a/app/src/translations/uk.json +++ b/app/src/translations/uk.json @@ -110,6 +110,7 @@ "label.advanced": null, "label.addVideo": null, "label.promoteAllPeers": null, + "label.moreActions": null, "settings.settings": "Налаштування", "settings.camera": "Камера",