send updates

This commit is contained in:
fmtabbara
2021-09-07 23:13:54 +01:00
parent 4522c18a55
commit 48d0f31d7e
5 changed files with 19 additions and 20 deletions
@@ -3,14 +3,14 @@ import { Card, CircularProgress, Theme, Typography } from '@material-ui/core'
import { CheckCircleOutline } from '@material-ui/icons'
import { useTheme } from '@material-ui/styles'
import { SendError } from './SendError'
import { TFormData } from './SendWizard'
import { TauriTxResult } from '../../types/rust/tauritxresult'
export const SendConfirmation = ({
data,
error,
isLoading,
}: {
data?: Pick<TFormData, 'to' | 'amount'>
data?: TauriTxResult['details']
error?: string
isLoading: boolean
}) => {
@@ -60,7 +60,7 @@ export const SendConfirmation = ({
</Typography>
</div>
<div style={{ wordBreak: 'break-all' }}>
<Typography>{data.to}</Typography>
<Typography>{data.to_address}</Typography>
</div>
</div>
<div style={{ display: 'flex' }}>
@@ -70,7 +70,7 @@ export const SendConfirmation = ({
</Typography>
</div>
<div>
<Typography>{data.amount + ' punks'}</Typography>
<Typography>{data.amount.amount + ' punks'}</Typography>
</div>
</div>
</Card>
+2 -2
View File
@@ -33,8 +33,8 @@ export const SendForm = () => {
label="To"
fullWidth
autoFocus
error={!!errors.recipient}
helperText={errors.recipient?.message}
error={!!errors.to}
helperText={errors.to?.message}
/>
</Grid>
<Grid item xs={12} sm={6}>
+8 -9
View File
@@ -6,10 +6,10 @@ import { useTheme } from '@material-ui/styles'
import { SendForm } from './SendForm'
import { SendReview } from './SendReview'
import { SendConfirmation } from './SendConfirmation'
import { SendError } from './SendError'
import { ClientContext } from '../../context/main'
import { validationSchema } from './validationSchema'
import { invoke } from '@tauri-apps/api'
import { TauriTxResult } from '../../types/rust/tauritxresult'
const defaultValues = {
amount: '',
@@ -28,8 +28,7 @@ export const SendWizard = () => {
const [activeStep, setActiveStep] = useState(0)
const [isLoading, setIsLoading] = useState(false)
const [requestError, setRequestError] = useState<string>()
const [confirmedData, setConfirmedData] =
useState<{ amount: string; recipient: string }>()
const [confirmedData, setConfirmedData] = useState<TauriTxResult['details']>()
const steps = ['Enter address', 'Review and send', 'Await confirmation']
@@ -50,6 +49,9 @@ export const SendWizard = () => {
const handleFinish = () => {
methods.reset()
setIsLoading(false)
setRequestError(undefined)
setConfirmedData(undefined)
setActiveStep(0)
}
@@ -62,13 +64,10 @@ export const SendWizard = () => {
amount: { denom: 'punk', amount: formState.amount },
memo: formState.memo,
})
.then((res) => {
console.log(res)
.then((res: any) => {
const { details } = res as TauriTxResult
setActiveStep((s) => s + 1)
setConfirmedData({
amount: formState.amount,
recipient: formState.to,
})
setConfirmedData(details)
setIsLoading(false)
})
@@ -1,8 +1,8 @@
import * as Yup from 'yup'
import { validateAmount, validateKey } from '../../utils'
import { validateAmount } from '../../utils'
export const validationSchema = Yup.object().shape({
to: Yup.string().required(),
to: Yup.string().strict().trim('Cannot have leading space').required(),
amount: Yup.string()
.required()
.test('valid-amount', 'A valid amount is required', (amount) => {
+3 -3
View File
@@ -41,12 +41,12 @@ export const validateAmount = async (
}
export const basicRawCoinValueValidation = (rawAmount: string): boolean => {
const amountFloat = parseFloat(rawAmount)
if (isNaN(amountFloat)) {
if (!Number(rawAmount)) {
return false
}
const amountFloat = parseFloat(rawAmount)
// it cannot have more than 6 decimal places
if (amountFloat !== parseInt(amountFloat.toFixed(6))) {
return false