Small staking cleanups (#3395)

This commit is contained in:
Jaco Greeff 2020-08-11 23:54:47 +02:00 committed by GitHub
parent 4c96cfec93
commit dc5bd4b87b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -71,18 +71,12 @@ function Account ({ allSlashes, className = '', info: { controllerId, destinatio
useEffect((): void => {
allSlashes && setSlashes(
allSlashes
.map(([era, all]) => {
const slashes = all
.filter(({ others, validator }) => validator.eq(stashId) || others.some(([nominatorId]) => nominatorId.eq(stashId)))
.map(({ others, own, payout, reporters, validator }) => ({
others, own, payout, reporters, validator
}));
return {
era,
slashes
};
})
.map(([era, all]) => ({
era,
slashes: all.filter(({ others, validator }) =>
validator.eq(stashId) || others.some(([nominatorId]) => nominatorId.eq(stashId))
)
}))
.filter(({ slashes }) => slashes.length)
);
}, [allSlashes, stashId]);
@ -208,136 +202,133 @@ function Account ({ allSlashes, className = '', info: { controllerId, destinatio
)
}
<td className='button'>
{isLoading
? null
: (
<>
{(isStashNominating || isStashValidating)
? (
<TxButton
accountId={controllerId}
icon='stop'
isDisabled={!isOwnController || isDisabled}
key='stop'
label={t<string>('Stop')}
tx='staking.chill'
/>
)
: (
<Button.Group>
{(!sessionIds.length || hexSessionIdNext === '0x')
? (
<Button
icon='sign-in-alt'
isDisabled={!isOwnController || isDisabled}
key='set'
label={t<string>('Session Key')}
onClick={toggleSetSession}
/>
)
: (
<Button
icon='certificate'
isDisabled={!isOwnController || isDisabled || !hasBonded}
key='validate'
label={t<string>('Validate')}
onClick={toggleValidate}
/>
)
}
<Button
icon='hand-paper'
isDisabled={!isOwnController || isDisabled || !hasBonded}
key='nominate'
label={t<string>('Nominate')}
onClick={toggleNominate}
/>
</Button.Group>
)
}
<Popup
isOpen={isSettingsOpen}
key='settings'
onClose={toggleSettings}
trigger={
{!isLoading && (
<>
{(isStashNominating || isStashValidating)
? (
<TxButton
accountId={controllerId}
icon='stop'
isDisabled={!isOwnController || isDisabled}
key='stop'
label={t<string>('Stop')}
tx='staking.chill'
/>
)
: (
<Button.Group>
{(!sessionIds.length || hexSessionIdNext === '0x')
? (
<Button
icon='sign-in-alt'
isDisabled={!isOwnController || isDisabled}
key='set'
label={t<string>('Session Key')}
onClick={toggleSetSession}
/>
)
: (
<Button
icon='certificate'
isDisabled={!isOwnController || isDisabled || !hasBonded}
key='validate'
label={t<string>('Validate')}
onClick={toggleValidate}
/>
)
}
<Button
icon='ellipsis-v'
isDisabled={isDisabled}
onClick={toggleSettings}
icon='hand-paper'
isDisabled={!isOwnController || isDisabled || !hasBonded}
key='nominate'
label={t<string>('Nominate')}
onClick={toggleNominate}
/>
}
>
<Menu
</Button.Group>
)
}
<Popup
isOpen={isSettingsOpen}
key='settings'
onClose={toggleSettings}
trigger={
<Button
icon='ellipsis-v'
isDisabled={isDisabled}
onClick={toggleSettings}
text
vertical
/>
}
>
<Menu
onClick={toggleSettings}
text
vertical
>
<Menu.Item
disabled={!isOwnStash && !balancesAll?.freeBalance.gtn(0)}
onClick={toggleBondExtra}
>
<Menu.Item
disabled={!isOwnStash && !balancesAll?.freeBalance.gtn(0)}
onClick={toggleBondExtra}
>
{t<string>('Bond more funds')}
</Menu.Item>
<Menu.Item
disabled={!isOwnController || !stakingAccount || !stakingAccount.stakingLedger || stakingAccount.stakingLedger.active.isEmpty}
onClick={toggleUnbond}
>
{t<string>('Unbond funds')}
</Menu.Item>
<Menu.Item
disabled={!isOwnController || !stakingAccount || !stakingAccount.redeemable || !stakingAccount.redeemable.gtn(0)}
onClick={withdrawFunds}
>
{t<string>('Withdraw unbonded funds')}
</Menu.Item>
<Menu.Divider />
<Menu.Item
disabled={!isOwnStash}
onClick={toggleSetController}
>
{t<string>('Change controller account')}
</Menu.Item>
{t<string>('Bond more funds')}
</Menu.Item>
<Menu.Item
disabled={!isOwnController || !stakingAccount || !stakingAccount.stakingLedger || stakingAccount.stakingLedger.active.isEmpty}
onClick={toggleUnbond}
>
{t<string>('Unbond funds')}
</Menu.Item>
<Menu.Item
disabled={!isOwnController || !stakingAccount || !stakingAccount.redeemable || !stakingAccount.redeemable.gtn(0)}
onClick={withdrawFunds}
>
{t<string>('Withdraw unbonded funds')}
</Menu.Item>
<Menu.Divider />
<Menu.Item
disabled={!isOwnStash}
onClick={toggleSetController}
>
{t<string>('Change controller account')}
</Menu.Item>
<Menu.Item
disabled={!isOwnController}
onClick={toggleRewardDestination}
>
{t<string>('Change reward destination')}
</Menu.Item>
{isStashValidating &&
<Menu.Item
disabled={!isOwnController}
onClick={toggleRewardDestination}
onClick={toggleValidate}
>
{t<string>('Change reward destination')}
{t<string>('Change validator preferences')}
</Menu.Item>
{isStashValidating &&
<Menu.Item
disabled={!isOwnController}
onClick={toggleValidate}
>
{t<string>('Change validator preferences')}
</Menu.Item>
}
<Menu.Divider />
{!isStashNominating &&
<Menu.Item
disabled={!isOwnController}
onClick={toggleSetSession}
>
{t<string>('Change session keys')}
</Menu.Item>
}
{isStashNominating &&
<Menu.Item
disabled={!isOwnController || !targets.validators?.length}
onClick={toggleNominate}
>
{t<string>('Set nominees')}
</Menu.Item>
}
{!isStashNominating &&
<Menu.Item onClick={toggleInject}>
{t<string>('Inject session keys (advanced)')}
</Menu.Item>
}
</Menu>
</Popup>
</>
)
}
}
<Menu.Divider />
{!isStashNominating &&
<Menu.Item
disabled={!isOwnController}
onClick={toggleSetSession}
>
{t<string>('Change session keys')}
</Menu.Item>
}
{isStashNominating &&
<Menu.Item
disabled={!isOwnController || !targets.validators?.length}
onClick={toggleNominate}
>
{t<string>('Set nominees')}
</Menu.Item>
}
{!isStashNominating &&
<Menu.Item onClick={toggleInject}>
{t<string>('Inject session keys (advanced)')}
</Menu.Item>
}
</Menu>
</Popup>
</>
)}
</td>
</tr>
);