begin sign in rust integration

This commit is contained in:
fmtabbara
2021-08-25 14:06:37 +01:00
parent 248da351c6
commit c7e622f284
2 changed files with 39 additions and 11 deletions
+2 -2
View File
@@ -52,8 +52,8 @@
"windows": [ "windows": [
{ {
"title": "nym-wallet", "title": "nym-wallet",
"width": 800, "width": 1920,
"height": 600, "height": 1080,
"resizable": true, "resizable": true,
"fullscreen": false "fullscreen": false
} }
+37 -9
View File
@@ -1,7 +1,7 @@
import React, { useState } from 'react' import React, { useState } from 'react'
import { import {
TextField, TextField,
LinearProgress, CircularProgress,
Button, Button,
Typography, Typography,
Grid, Grid,
@@ -9,21 +9,38 @@ import {
Theme, Theme,
Card, Card,
} from '@material-ui/core' } from '@material-ui/core'
import { Alert } from '@material-ui/lab'
import { useTheme } from '@material-ui/styles' import { useTheme } from '@material-ui/styles'
import logo from '../images/logo.png' import logo from '../images/logo.png'
import { useHistory } from 'react-router-dom' import { useHistory } from 'react-router-dom'
import { invoke } from '@tauri-apps/api' import { invoke } from '@tauri-apps/api'
export const SignIn = () => { export const SignIn = () => {
const handleSignIn = (e: React.FormEvent<any>) => { const [mnemonic, setMnemonic] = useState<string>('')
e.preventDefault() const [inputError, setInputError] = useState<string | undefined>()
const [isLoading, setIsLoading] = useState(false)
history.push('/bond')
}
const [loading, setLoading] = useState(false)
const theme: Theme = useTheme() const theme: Theme = useTheme()
const history = useHistory() const history = useHistory()
const handleSignIn = async (e: React.FormEvent<HTMLFormElement>) => {
e.preventDefault()
setIsLoading(true)
setInputError(undefined)
invoke('connect_with_mnemonic', { mnemonic })
.then((res) => {
setIsLoading(false)
console.log(res)
history.push('/bond')
})
.catch((e) => {
setIsLoading(false)
setInputError(e)
})
}
return ( return (
<div <div
style={{ style={{
@@ -68,6 +85,10 @@ export const SignIn = () => {
<Grid container direction="column" spacing={1}> <Grid container direction="column" spacing={1}>
<Grid item> <Grid item>
<TextField <TextField
value={mnemonic}
onChange={(e: React.ChangeEvent<HTMLInputElement>) =>
setMnemonic(e.target.value)
}
size="medium" size="medium"
variant="outlined" variant="outlined"
margin="normal" margin="normal"
@@ -78,6 +99,7 @@ export const SignIn = () => {
name="mnemonic" name="mnemonic"
autoComplete="mnemonic" autoComplete="mnemonic"
autoFocus autoFocus
disabled={isLoading}
/> />
</Grid> </Grid>
<Grid item> <Grid item>
@@ -86,12 +108,18 @@ export const SignIn = () => {
variant="contained" variant="contained"
color="primary" color="primary"
type="submit" type="submit"
disabled={loading} disabled={isLoading}
endIcon={isLoading && <CircularProgress size={20} />}
disableElevation disableElevation
> >
Sign In {!isLoading ? 'Sign In' : 'Signing in'}
</Button> </Button>
</Grid> </Grid>
{inputError && (
<Grid item>
<Alert severity="error">{inputError}</Alert>
</Grid>
)}
<Grid item style={{ marginTop: theme.spacing(1) }}> <Grid item style={{ marginTop: theme.spacing(1) }}>
<Typography variant="body2" component="span"> <Typography variant="body2" component="span">
Don't have an account? Don't have an account?