From 87e4b9ae75021aa1caace374bd40c91e4401a9b2 Mon Sep 17 00:00:00 2001 From: azernik Date: Thu, 7 Jan 2021 09:58:29 +0200 Subject: [PATCH] - use default value of '0' for port (#550) - disable port input unless "use default port" toggled on - remove unused styles --- .../CreatePeerDialog/CreatePeerDialog.js | 187 +++++++++++------- .../src/components/CreatePeerDialog/styles.js | 43 ---- 2 files changed, 117 insertions(+), 113 deletions(-) delete mode 100644 frontend/src/components/CreatePeerDialog/styles.js diff --git a/frontend/src/components/CreatePeerDialog/CreatePeerDialog.js b/frontend/src/components/CreatePeerDialog/CreatePeerDialog.js index 766f6eed..d2c6f350 100644 --- a/frontend/src/components/CreatePeerDialog/CreatePeerDialog.js +++ b/frontend/src/components/CreatePeerDialog/CreatePeerDialog.js @@ -1,65 +1,80 @@ -import React, {useState, useEffect} from 'react'; +import React, { useState } from 'react'; import { - Paper, - IconButton, - Menu, - MenuItem, - Typography, - Grid, - Box, - Link, + Button, Dialog, + DialogActions, DialogTitle, DialogContent, - DialogContentText, + FormControlLabel, + Switch, TextField, - DialogActions, - Button, - FormControl, - InputLabel, - Select, } from "@material-ui/core"; -import { MoreVert as MoreIcon } from "@material-ui/icons"; -import {useHistory} from "react-router-dom"; -import classnames from "classnames"; +import { useHistory } from "react-router-dom"; // styles -import useStyles from "./styles"; - -import Widget from "../../components/Widget"; -import SqueakThreadItem from "../../components/SqueakThreadItem"; +import {makeStyles} from '@material-ui/core/styles'; import { createPeerRequest, } from "../../squeakclient/requests" +const useStyles = makeStyles((theme) => ({ + form: { + margin: 'auto', + width: 'fit-content', + '& .MuiDialogContent-root': { + overflow: `hidden` + }, + '& .MuiTextField-root': { + margin: theme.spacing(1), + }, + '& .MuiDialogActions-root': { + padding: `1rem`, + }, + }, + formControlLabel: { + position: `absolute`, + left: `2rem`, + }, +})); + +const portDefaultValue = '0'; export default function CreatePeerDialog({ open, handleClose, ...props }) { - var classes = useStyles(); + const classes = useStyles(); const history = useHistory(); - var [peerName, setpeerName] = useState(''); - var [host, setHost] = useState(''); - var [port, setPort] = useState(''); + const [peerName, setPeerName] = useState(''); + const [host, setHost] = useState(''); + const [port, setPort] = useState(''); + const [customPortChecked, setCustomPortChecked] = React.useState(false) const resetFields = () => { - setpeerName(''); + setPeerName(''); setHost(''); - setPort(''); + setPort(portDefaultValue); + setCustomPortChecked(false); }; const handleChangePeerName = (event) => { - setpeerName(event.target.value); + setPeerName(event.target.value); }; const handleChangeHost = (event) => { setHost(event.target.value); }; + const handleChangeCustomPortChecked = (event) => { + setPort( + event.target.checked ? '' : portDefaultValue + ); + setCustomPortChecked(event.target.checked); + } + const handleChangePort = (event) => { setPort(event.target.value); }; @@ -94,43 +109,67 @@ export default function CreatePeerDialog({ function CreatePeerNameInput() { return ( ) } function CreateHostInput() { return ( - ) } function CreatePortInput() { return ( - ) } + + function CustomPortSwitch() { + return ( + + } + label="Use custom port" + /> + ) + } + + function CancelButton() { return ( + type="submit" + variant="contained" + color="primary" + className={classes.button} + > + Create Peer + ) } return ( - - Create Peer -
- -
- {CreatePeerNameInput()} -
-
- {CreateHostInput()} -
-
- {CreatePortInput()} -
-
- - {CancelButton()} - {CreatePeerButton()} - -
+ + + Create Peer + +
+ + {CreatePeerNameInput()} + {CreateHostInput()} + {CreatePortInput()} + + + {CustomPortSwitch()} + {CancelButton()} + {CreatePeerButton()} + +
) } diff --git a/frontend/src/components/CreatePeerDialog/styles.js b/frontend/src/components/CreatePeerDialog/styles.js deleted file mode 100644 index f2d64da1..00000000 --- a/frontend/src/components/CreatePeerDialog/styles.js +++ /dev/null @@ -1,43 +0,0 @@ -import { makeStyles } from "@material-ui/styles"; - -export default makeStyles(theme => ({ - widgetWrapper: { - display: "flex", - minHeight: "100%", - }, - widgetHeader: { - padding: theme.spacing(3), - paddingBottom: theme.spacing(1), - display: "flex", - justifyContent: "space-between", - alignItems: "center", - }, - widgetRoot: { - boxShadow: theme.customShadows.widget, - }, - widgetBody: { - paddingBottom: theme.spacing(3), - paddingRight: theme.spacing(3), - paddingLeft: theme.spacing(3), - }, - noPadding: { - padding: 0, - }, - paper: { - display: "flex", - flexDirection: "column", - flexGrow: 1, - overflow: "hidden", - }, - moreButton: { - margin: -theme.spacing(1), - padding: 0, - width: 40, - height: 40, - color: theme.palette.text.hint, - "&:hover": { - backgroundColor: theme.palette.primary.main, - color: "rgba(255, 255, 255, 0.35)", - }, - }, -}));