import React, { useState } from 'react'; import { Link } from 'react-router-dom'; import { withStyles } from '@material-ui/core/styles'; import isElectron from 'is-electron'; import PropTypes from 'prop-types'; import { useIntl, FormattedMessage } from 'react-intl'; import randomString from 'random-string'; import Dialog from '@material-ui/core/Dialog'; import DialogContentText from '@material-ui/core/DialogContentText'; import Typography from '@material-ui/core/Typography'; import Button from '@material-ui/core/Button'; import TextField from '@material-ui/core/TextField'; import CookieConsent from 'react-cookie-consent'; import MuiDialogTitle from '@material-ui/core/DialogTitle'; import MuiDialogContent from '@material-ui/core/DialogContent'; import MuiDialogActions from '@material-ui/core/DialogActions'; const styles = (theme) => ({ root : { display : 'flex', width : '100%', height : '100%', backgroundColor : 'var(--background-color)', backgroundImage : `url(${window.config ? window.config.background : null})`, backgroundAttachment : 'fixed', backgroundPosition : 'center', backgroundSize : 'cover', backgroundRepeat : 'no-repeat' }, dialogTitle : { }, dialogPaper : { width : '30vw', padding : theme.spacing(2), [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 : { display : 'block', paddingBottom : '1vh' }, loginButton : { position : 'absolute', right : theme.spacing(2), top : theme.spacing(2), padding : 0 }, largeIcon : { fontSize : '2em' }, largeAvatar : { width : 50, height : 50 }, green : { color : 'rgba(0, 153, 0, 1)' } }); const DialogTitle = withStyles(styles)((props) => { const { children, classes, ...other } = props; return ( { window.config && window.config.logo && Logo } {children} ); }); const DialogContent = withStyles((theme) => ({ root : { padding : theme.spacing(2) } }))(MuiDialogContent); const DialogActions = withStyles((theme) => ({ root : { margin : 0, padding : theme.spacing(1) } }))(MuiDialogActions); const ChooseRoom = ({ classes }) => { const [ roomId, setRoomId ] = useState(randomString({ length: 8 }).toLowerCase()); const intl = useIntl(); return (
{ window.config && window.config.title ? window.config.title : 'Multiparty meeting' }
{ const { value } = event.target; setRoomId(value.toLowerCase()); }} onBlur={() => { if (roomId === '') setRoomId(randomString({ length: 8 }).toLowerCase()); }} fullWidth /> { !isElectron() && }
); }; ChooseRoom.propTypes = { classes : PropTypes.object.isRequired }; export default withStyles(styles)(ChooseRoom);