mirror of
https://github.com/yzernik/squeaknode.git
synced 2026-08-15 12:50:47 +02:00
Show waiting indicator for connect peer (#1327)
* Show waiting indicator in connect peer dialog while waiting * Update style for connect peer dialog to show waiting indicator in button * Remove unused import * Run frontend lint * Update frontend build * Remove testing comment from peer handler
This commit is contained in:
parent
cc950eb173
commit
fc7749ea26
13 changed files with 147 additions and 63 deletions
|
|
@ -8,34 +8,15 @@ import {
|
|||
FormControlLabel,
|
||||
Switch,
|
||||
TextField,
|
||||
CircularProgress,
|
||||
} from '@material-ui/core';
|
||||
|
||||
// styles
|
||||
import { makeStyles } from '@material-ui/core/styles';
|
||||
|
||||
import {
|
||||
connectSqueakPeerRequest,
|
||||
} 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',
|
||||
},
|
||||
}));
|
||||
// styles
|
||||
import useStyles from './styles';
|
||||
|
||||
const portDefaultValue = '0';
|
||||
|
||||
|
|
@ -50,7 +31,8 @@ export default function ConnectPeerDialog({
|
|||
const [peerName, setPeerName] = useState('');
|
||||
const [host, setHost] = useState('');
|
||||
const [port, setPort] = useState('');
|
||||
const [customPortChecked, setCustomPortChecked] = React.useState(false);
|
||||
const [customPortChecked, setCustomPortChecked] = useState(false);
|
||||
const [loading, setLoading] = useState(false);
|
||||
|
||||
const resetFields = () => {
|
||||
setPeerName('');
|
||||
|
|
@ -74,16 +56,26 @@ export default function ConnectPeerDialog({
|
|||
setPort(event.target.value);
|
||||
};
|
||||
|
||||
const handleConnectPeerError = (err) => {
|
||||
alert(`Connect peer failure: ${err}`);
|
||||
};
|
||||
|
||||
const connectPeer = (peerName, host, port) => {
|
||||
setLoading(true);
|
||||
connectSqueakPeerRequest(host, port, (response) => {
|
||||
// goToPeerPage(history, response.getPeerId());
|
||||
handlePeerConnected();
|
||||
// handlePeerConnected();
|
||||
handlePeerConnectedResponse();
|
||||
},
|
||||
handleConnectPeerError);
|
||||
handlePeerConnectedErr);
|
||||
};
|
||||
|
||||
const handlePeerConnectedResponse = (response) => {
|
||||
handlePeerConnected();
|
||||
setLoading(false);
|
||||
handleClose();
|
||||
};
|
||||
|
||||
const handlePeerConnectedErr = (err) => {
|
||||
alert(`Connect Peer failure: ${err}`);
|
||||
setLoading(false);
|
||||
handleClose();
|
||||
};
|
||||
|
||||
function handleSubmit(event) {
|
||||
|
|
@ -99,7 +91,7 @@ export default function ConnectPeerDialog({
|
|||
return;
|
||||
}
|
||||
connectPeer(peerName, host, port);
|
||||
handleClose();
|
||||
// handleClose();
|
||||
}
|
||||
|
||||
function ConnectHostInput() {
|
||||
|
|
@ -162,14 +154,17 @@ export default function ConnectPeerDialog({
|
|||
|
||||
function ConnectPeerButton() {
|
||||
return (
|
||||
<Button
|
||||
type="submit"
|
||||
variant="contained"
|
||||
color="primary"
|
||||
className={classes.button}
|
||||
>
|
||||
Connect Peer
|
||||
</Button>
|
||||
<div className={classes.wrapper}>
|
||||
<Button
|
||||
type="submit"
|
||||
variant="contained"
|
||||
color="primary"
|
||||
disabled={loading}
|
||||
>
|
||||
Connect Peer
|
||||
</Button>
|
||||
{loading && <CircularProgress size={24} className={classes.buttonProgress} />}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
90
frontend/src/components/ConnectPeerDialog/styles.js
Normal file
90
frontend/src/components/ConnectPeerDialog/styles.js
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
import { makeStyles } from '@material-ui/styles';
|
||||
import { green } from '@material-ui/core/colors';
|
||||
|
||||
export default 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',
|
||||
},
|
||||
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)',
|
||||
},
|
||||
},
|
||||
root: {
|
||||
display: 'flex',
|
||||
alignItems: 'center',
|
||||
},
|
||||
wrapper: {
|
||||
margin: theme.spacing(1),
|
||||
position: 'relative',
|
||||
},
|
||||
buttonSuccess: {
|
||||
backgroundColor: green[500],
|
||||
'&:hover': {
|
||||
backgroundColor: green[700],
|
||||
},
|
||||
},
|
||||
fabProgress: {
|
||||
color: green[500],
|
||||
position: 'absolute',
|
||||
top: -6,
|
||||
left: -6,
|
||||
zIndex: 1,
|
||||
},
|
||||
buttonProgress: {
|
||||
color: green[500],
|
||||
position: 'absolute',
|
||||
top: '50%',
|
||||
left: '50%',
|
||||
marginTop: -12,
|
||||
marginLeft: -12,
|
||||
},
|
||||
}));
|
||||
|
|
@ -1,17 +1,17 @@
|
|||
{
|
||||
"files": {
|
||||
"main.js": "/static/js/main.f43898a0.chunk.js",
|
||||
"main.js.map": "/static/js/main.f43898a0.chunk.js.map",
|
||||
"main.js": "/static/js/main.1fd28bcb.chunk.js",
|
||||
"main.js.map": "/static/js/main.1fd28bcb.chunk.js.map",
|
||||
"runtime-main.js": "/static/js/runtime-main.9f0ba400.js",
|
||||
"runtime-main.js.map": "/static/js/runtime-main.9f0ba400.js.map",
|
||||
"static/css/2.ea4ba2f0.chunk.css": "/static/css/2.ea4ba2f0.chunk.css",
|
||||
"static/js/2.4667e88e.chunk.js": "/static/js/2.4667e88e.chunk.js",
|
||||
"static/js/2.4667e88e.chunk.js.map": "/static/js/2.4667e88e.chunk.js.map",
|
||||
"static/js/2.6895831b.chunk.js": "/static/js/2.6895831b.chunk.js",
|
||||
"static/js/2.6895831b.chunk.js.map": "/static/js/2.6895831b.chunk.js.map",
|
||||
"index.html": "/index.html",
|
||||
"precache-manifest.930ede73e84f1fad0f4bd9bc17ca9884.js": "/precache-manifest.930ede73e84f1fad0f4bd9bc17ca9884.js",
|
||||
"precache-manifest.0649e899c086b534664652302e9f6a2f.js": "/precache-manifest.0649e899c086b534664652302e9f6a2f.js",
|
||||
"service-worker.js": "/service-worker.js",
|
||||
"static/css/2.ea4ba2f0.chunk.css.map": "/static/css/2.ea4ba2f0.chunk.css.map",
|
||||
"static/js/2.4667e88e.chunk.js.LICENSE.txt": "/static/js/2.4667e88e.chunk.js.LICENSE.txt",
|
||||
"static/js/2.6895831b.chunk.js.LICENSE.txt": "/static/js/2.6895831b.chunk.js.LICENSE.txt",
|
||||
"static/media/font-awesome.min.css": "/static/media/fontawesome-webfont.fee66e71.woff",
|
||||
"static/media/google.svg": "/static/media/google.695a3160.svg",
|
||||
"static/media/logo.svg": "/static/media/logo.a0185b04.svg"
|
||||
|
|
@ -19,7 +19,7 @@
|
|||
"entrypoints": [
|
||||
"static/js/runtime-main.9f0ba400.js",
|
||||
"static/css/2.ea4ba2f0.chunk.css",
|
||||
"static/js/2.4667e88e.chunk.js",
|
||||
"static/js/main.f43898a0.chunk.js"
|
||||
"static/js/2.6895831b.chunk.js",
|
||||
"static/js/main.1fd28bcb.chunk.js"
|
||||
]
|
||||
}
|
||||
|
|
@ -1 +1 @@
|
|||
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="shortcut icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta name="theme-color" content="#000000"/><link rel="manifest" href="/manifest.json"/><title>Squeak Node</title><meta name="description" content="Squeak Node is a frontend for accessing a squeak node"><meta name="keywords" content="squeak, bitcoin, lightning"><meta name="author" content="Flatlogic LLC."><link href="/static/css/2.ea4ba2f0.chunk.css" rel="stylesheet"></head><body style="font-family:Roboto,sans-serif"><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function r(r){for(var n,f,l=r[0],a=r[1],i=r[2],c=0,s=[];c<l.length;c++)f=l[c],Object.prototype.hasOwnProperty.call(o,f)&&o[f]&&s.push(o[f][0]),o[f]=0;for(n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n]);for(p&&p(r);s.length;)s.shift()();return u.push.apply(u,i||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,l=1;l<t.length;l++){var a=t[l];0!==o[a]&&(n=!1)}n&&(u.splice(r--,1),e=f(f.s=t[0]))}return e}var n={},o={1:0},u=[];function f(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,f),t.l=!0,t.exports}f.m=e,f.c=n,f.d=function(e,r,t){f.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(e,r){if(1&r&&(e=f(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(f.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)f.d(t,n,function(r){return e[r]}.bind(null,n));return t},f.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(r,"a",r),r},f.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},f.p="/";var l=this["webpackJsonpsqueak-node-frontend"]=this["webpackJsonpsqueak-node-frontend"]||[],a=l.push.bind(l);l.push=r,l=l.slice();for(var i=0;i<l.length;i++)r(l[i]);var p=a;t()}([])</script><script src="/static/js/2.4667e88e.chunk.js"></script><script src="/static/js/main.f43898a0.chunk.js"></script></body></html>
|
||||
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="shortcut icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta name="theme-color" content="#000000"/><link rel="manifest" href="/manifest.json"/><title>Squeak Node</title><meta name="description" content="Squeak Node is a frontend for accessing a squeak node"><meta name="keywords" content="squeak, bitcoin, lightning"><meta name="author" content="Flatlogic LLC."><link href="/static/css/2.ea4ba2f0.chunk.css" rel="stylesheet"></head><body style="font-family:Roboto,sans-serif"><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function r(r){for(var n,f,l=r[0],a=r[1],i=r[2],c=0,s=[];c<l.length;c++)f=l[c],Object.prototype.hasOwnProperty.call(o,f)&&o[f]&&s.push(o[f][0]),o[f]=0;for(n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n]);for(p&&p(r);s.length;)s.shift()();return u.push.apply(u,i||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,l=1;l<t.length;l++){var a=t[l];0!==o[a]&&(n=!1)}n&&(u.splice(r--,1),e=f(f.s=t[0]))}return e}var n={},o={1:0},u=[];function f(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,f),t.l=!0,t.exports}f.m=e,f.c=n,f.d=function(e,r,t){f.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(e,r){if(1&r&&(e=f(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(f.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)f.d(t,n,function(r){return e[r]}.bind(null,n));return t},f.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(r,"a",r),r},f.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},f.p="/";var l=this["webpackJsonpsqueak-node-frontend"]=this["webpackJsonpsqueak-node-frontend"]||[],a=l.push.bind(l);l.push=r,l=l.slice();for(var i=0;i<l.length;i++)r(l[i]);var p=a;t()}([])</script><script src="/static/js/2.6895831b.chunk.js"></script><script src="/static/js/main.1fd28bcb.chunk.js"></script></body></html>
|
||||
|
|
@ -1,23 +1,23 @@
|
|||
self.__precacheManifest = (self.__precacheManifest || []).concat([
|
||||
{
|
||||
"revision": "0076751edb4460adffbb7fc695e68f98",
|
||||
"revision": "0d5b51ff73059ba96aa2edbf6a196ad4",
|
||||
"url": "/index.html"
|
||||
},
|
||||
{
|
||||
"revision": "339f5ac38f31e7fed4b8",
|
||||
"revision": "e16fad9d9cffa1a7598f",
|
||||
"url": "/static/css/2.ea4ba2f0.chunk.css"
|
||||
},
|
||||
{
|
||||
"revision": "339f5ac38f31e7fed4b8",
|
||||
"url": "/static/js/2.4667e88e.chunk.js"
|
||||
"revision": "e16fad9d9cffa1a7598f",
|
||||
"url": "/static/js/2.6895831b.chunk.js"
|
||||
},
|
||||
{
|
||||
"revision": "279b8724b89bf7d504758b3fa917239f",
|
||||
"url": "/static/js/2.4667e88e.chunk.js.LICENSE.txt"
|
||||
"url": "/static/js/2.6895831b.chunk.js.LICENSE.txt"
|
||||
},
|
||||
{
|
||||
"revision": "017707fdf1f5d031857e",
|
||||
"url": "/static/js/main.f43898a0.chunk.js"
|
||||
"revision": "0a5fec8ddab5a5b6d2f9",
|
||||
"url": "/static/js/main.1fd28bcb.chunk.js"
|
||||
},
|
||||
{
|
||||
"revision": "cc9816de5a8639d377ea",
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js");
|
||||
|
||||
importScripts(
|
||||
"/precache-manifest.930ede73e84f1fad0f4bd9bc17ca9884.js"
|
||||
"/precache-manifest.0649e899c086b534664652302e9f6a2f.js"
|
||||
);
|
||||
|
||||
self.addEventListener('message', (event) => {
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -89,7 +89,6 @@ class PeerHandler():
|
|||
|
||||
if peer.outgoing:
|
||||
peer.send_version()
|
||||
# raise Exception("Fooooooo!")
|
||||
peer.receive_version()
|
||||
if not peer.outgoing:
|
||||
peer.send_version()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue