mirror of
https://github.com/yzernik/squeaknode.git
synced 2026-08-17 13:07:32 +02:00
* Change text of button for go to peer config * Got basic saved peer detail component working * Got toggle saved peer configs dialog working * Show network, host, and port for saved peer detail component * Update frontend build * Improve styles for detail cards * Update frontend build
102 lines
2.5 KiB
JavaScript
102 lines
2.5 KiB
JavaScript
import React from 'react';
|
|
import {
|
|
Dialog,
|
|
DialogTitle,
|
|
DialogContent,
|
|
DialogActions,
|
|
Button,
|
|
FormControl,
|
|
FormLabel,
|
|
FormGroup,
|
|
FormControlLabel,
|
|
Switch,
|
|
} from '@material-ui/core';
|
|
|
|
// styles
|
|
import useStyles from './styles';
|
|
|
|
import {
|
|
setPeerAutoconnectRequest,
|
|
setPeerShareForFreeRequest,
|
|
} from '../../squeakclient/requests';
|
|
|
|
export default function ConfigurePeerDialog({
|
|
open,
|
|
handleClose,
|
|
savedPeer,
|
|
reloadPeer,
|
|
...props
|
|
}) {
|
|
const classes = useStyles();
|
|
|
|
const setAutoconnect = (id, autoconnect) => {
|
|
setPeerAutoconnectRequest(id, autoconnect, () => {
|
|
reloadPeer();
|
|
});
|
|
};
|
|
|
|
const setShareForFree = (id, shareForFree) => {
|
|
setPeerShareForFreeRequest(id, shareForFree, () => {
|
|
reloadPeer();
|
|
});
|
|
};
|
|
|
|
const handleSettingsAutoconnectChange = (event) => {
|
|
console.log(`Autoconnect changed for peer id: ${savedPeer.getPeerId()}`);
|
|
console.log(`Autoconnect changed to: ${event.target.checked}`);
|
|
setAutoconnect(savedPeer.getPeerId(), event.target.checked);
|
|
};
|
|
|
|
const handleSettingsShareForFreeChange = (event) => {
|
|
console.log(`ShareForFree changed for peer id: ${savedPeer.getPeerId()}`);
|
|
console.log(`ShareForFree changed to: ${event.target.checked}`);
|
|
setShareForFree(savedPeer.getPeerId(), event.target.checked);
|
|
};
|
|
|
|
function MakeCancelButton() {
|
|
return (
|
|
<Button
|
|
onClick={handleClose}
|
|
variant="contained"
|
|
color="secondary"
|
|
>
|
|
Cancel
|
|
</Button>
|
|
);
|
|
}
|
|
|
|
function PeerSettingsForm() {
|
|
return (
|
|
<FormControl component="fieldset">
|
|
<FormLabel component="legend">Peer settings</FormLabel>
|
|
<FormGroup>
|
|
<FormControlLabel
|
|
control={<Switch checked={savedPeer.getAutoconnect()} onChange={handleSettingsAutoconnectChange} />}
|
|
label="Autoconnect"
|
|
/>
|
|
</FormGroup>
|
|
<FormGroup>
|
|
<FormControlLabel
|
|
control={<Switch checked={savedPeer.getShareForFree()} onChange={handleSettingsShareForFreeChange} />}
|
|
label="Share for free"
|
|
/>
|
|
</FormGroup>
|
|
</FormControl>
|
|
);
|
|
}
|
|
|
|
return (
|
|
<Dialog open={open} onClose={handleClose} aria-labelledby="form-dialog-title">
|
|
<DialogTitle id="form-dialog-title">Configure Peer</DialogTitle>
|
|
<form className={classes.root} noValidate autoComplete="off">
|
|
<DialogContent>
|
|
{savedPeer
|
|
&& PeerSettingsForm()}
|
|
</DialogContent>
|
|
<DialogActions>
|
|
{MakeCancelButton()}
|
|
</DialogActions>
|
|
</form>
|
|
</Dialog>
|
|
);
|
|
}
|