add enable token permissions to mobile registration screen

This commit is contained in:
Barry Gitarts 2018-08-15 16:27:43 -04:00
parent b267cdeb63
commit 7f1540d387
1 changed files with 91 additions and 85 deletions

View File

@ -11,6 +11,7 @@ import { zeroAddress, zeroBytes32, formatPrice } from './utils';
import { getStatusContactCode, getSNTAllowance } from '../../reducers/accounts'; import { getStatusContactCode, getSNTAllowance } from '../../reducers/accounts';
import FieldGroup from '../standard/FieldGroup'; import FieldGroup from '../standard/FieldGroup';
import LinearProgress from '@material-ui/core/LinearProgress'; import LinearProgress from '@material-ui/core/LinearProgress';
import TokenPermissions from '../standard/TokenPermissionConnect';
import { generateXY } from '../../utils/ecdsa'; import { generateXY } from '../../utils/ecdsa';
const { soliditySha3, fromWei } = web3.utils; const { soliditySha3, fromWei } = web3.utils;
@ -18,7 +19,6 @@ const { soliditySha3, fromWei } = web3.utils;
const InnerForm = ({ const InnerForm = ({
values, values,
errors, errors,
touched,
handleChange, handleChange,
handleBlur, handleBlur,
handleSubmit, handleSubmit,
@ -27,102 +27,108 @@ const InnerForm = ({
subDomain, subDomain,
domainName, domainName,
domainPrice, domainPrice,
statusContactCode, SNTAllowance,
}) => ( }) => (
<form onSubmit={handleSubmit}> <form onSubmit={handleSubmit}>
<div style={{ margin: '10px' }}> <div style={{ margin: '10px' }}>
{!subDomain && {!subDomain &&
<FieldGroup <FieldGroup
id="subDomain" id="subDomain"
name="subDomain" name="subDomain"
type="text" type="text"
label="Sub Domain" label="Sub Domain"
onChange={handleChange} onChange={handleChange}
onBlur={handleBlur} onBlur={handleBlur}
value={values.subDomain} value={values.subDomain}
error={errors.subDomain} error={errors.subDomain}
/>} />}
{!domainName && {!domainName &&
<FieldGroup <FieldGroup
id="domainName" id="domainName"
name="domainName" name="domainName"
type="text" type="text"
label="Domain Name" label="Domain Name"
onChange={handleChange} onChange={handleChange}
onBlur={handleBlur} onBlur={handleBlur}
value={values.domainName} value={values.domainName}
button={ button={
<Button <Button
mode="strong" mode="strong"
style={{ marginTop: '5px' }} style={{ marginTop: '5px' }}
onClick={() => { onClick={() => {
ENSSubdomainRegistry.methods.getPrice(hash(values.domainName)) ENSSubdomainRegistry.methods.getPrice(hash(values.domainName))
.call() .call()
.then((res) => { setFieldValue('price', fromWei(res)); }); .then((res) => { setFieldValue('price', fromWei(res)); });
}} }}
> >
Get Price Get Price
</Button> </Button>
} }
/>} />}
{!domainPrice && {!domainPrice &&
<FieldGroup <FieldGroup
id="price" id="price"
name="price" name="price"
label="Domain Price" label="Domain Price"
disabled disabled
value={values.price ? `${formatPrice(values.price)} SNT` : ''} />} value={values.price ? `${formatPrice(values.price)} SNT` : ''} />}
<Hidden mdDown> <Hidden mdDown>
<FieldGroup <FieldGroup
id="statusAddress" id="statusAddress"
name="statusAddress"
type="text"
label="Status messenger address domain resolves to"
onChange={handleChange}
onBlur={handleBlur}
value={values.statusAddress}
error={errors.statusAddress}
wide="true"
/>
<FieldGroup
id="address"
name="address"
type="text"
label="Ethereum address domain resolves to"
onChange={handleChange}
onBlur={handleBlur}
value={values.address}
error={errors.address}
button={<Button mode="strong" style={{ padding: '5px 15px 5px 15px', marginTop: '5px' }} onClick={() => setFieldValue('address', web3.eth.defaultAccount)}>Use My Primary Address</Button>}
/>
{!isSubmitting ? <Button wide mode="strong" type="submit" disabled={isSubmitting || !!Object.keys(errors).length}>{!isSubmitting ? 'Submit' : 'Submitting to the Blockchain - (this may take awhile)'}</Button> : <LinearProgress />}
</Hidden>
<Hidden mdUp>
<Field label="Your Contact Code">
<MobileSearch
name="statusAddress" name="statusAddress"
style={{ marginTop: '10px' }} type="text"
placeholder="Status Messenger Address" label="Status messenger address domain resolves to"
onChange={handleChange}
onBlur={handleBlur}
value={values.statusAddress} value={values.statusAddress}
onChange={handleChange} error={errors.statusAddress}
onClick={() => setFieldValue('statusAddress', '')} wide="true"
wide /> />
</Field> <FieldGroup
<Field label="Your Wallet Address"> id="address"
<MobileSearch
name="address" name="address"
style={{ marginTop: '10px' }} type="text"
placeholder="Ethereum Address" label="Ethereum address domain resolves to"
value={values.address}
onChange={handleChange} onChange={handleChange}
onClick={() => setFieldValue('address', '')} onBlur={handleBlur}
required value={values.address}
wide /> error={errors.address}
</Field> button={<Button mode="strong" style={{ padding: '5px 15px 5px 15px', marginTop: '5px' }} onClick={() => setFieldValue('address', web3.eth.defaultAccount)}>Use My Primary Address</Button>}
<div style={{ position: 'relative', left: 0, right: 0, bottom: 0 }}> />
<MobileButton type="submit" text="Register with transaction" style={{ width: '100%' }}/> {!isSubmitting ? <Button wide mode="strong" type="submit" disabled={isSubmitting || !!Object.keys(errors).length}>{!isSubmitting ? 'Submit' : 'Submitting to the Blockchain - (this may take awhile)'}</Button> : <LinearProgress />}
</div> </Hidden>
</Hidden> <Hidden mdUp>
<Field label="Your Contact Code">
<MobileSearch
name="statusAddress"
style={{ marginTop: '10px' }}
placeholder="Status Messenger Address"
value={values.statusAddress}
onChange={handleChange}
onClick={() => setFieldValue('statusAddress', '')}
wide />
</Field>
<Field label="Your Wallet Address">
<MobileSearch
name="address"
style={{ marginTop: '10px' }}
placeholder="Ethereum Address"
value={values.address}
onChange={handleChange}
onClick={() => setFieldValue('address', '')}
required
wide />
</Field>
<div style={{ position: 'relative', left: 0, right: 0, bottom: 0 }}>
{!Number(SNTAllowance) ? <TokenPermissions
symbol="SNT"
spender={ENSSubdomainRegistry.address}
methods={TestToken.methods}
mobile
/>
: <MobileButton type="submit" text="Register with transaction" style={{ width: '100%' }}/>}
</div>
</Hidden>
</div> </div>
</form> </form>
); );