Merge pull request #1910 from gnosis/fix/#1905-threshold-reset-when-edit-tx-parameters

Fix threshold reset when edit tx parameters
This commit is contained in:
Daniel Sanchez 2021-02-17 13:51:11 +01:00 committed by GitHub
commit ccb223d6ed
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 13 deletions

View File

@ -2,7 +2,7 @@ import IconButton from '@material-ui/core/IconButton'
import MenuItem from '@material-ui/core/MenuItem' import MenuItem from '@material-ui/core/MenuItem'
import { makeStyles } from '@material-ui/core/styles' import { makeStyles } from '@material-ui/core/styles'
import Close from '@material-ui/icons/Close' import Close from '@material-ui/icons/Close'
import React, { useEffect, useState } from 'react' import React, { ReactElement, useEffect, useState } from 'react'
import { useDispatch } from 'react-redux' import { useDispatch } from 'react-redux'
import { List } from 'immutable' import { List } from 'immutable'
@ -44,12 +44,13 @@ export const ChangeThresholdModal = ({
owners, owners,
safeAddress, safeAddress,
threshold = 1, threshold = 1,
}: ChangeThresholdModalProps): React.ReactElement => { }: ChangeThresholdModalProps): ReactElement => {
const classes = useStyles() const classes = useStyles()
const dispatch = useDispatch() const dispatch = useDispatch()
const [data, setData] = useState('') const [data, setData] = useState('')
const [manualSafeTxGas, setManualSafeTxGas] = useState(0) const [manualSafeTxGas, setManualSafeTxGas] = useState(0)
const [manualGasPrice, setManualGasPrice] = useState<string | undefined>() const [manualGasPrice, setManualGasPrice] = useState<string | undefined>()
const [editedThreshold, setEditedThreshold] = useState<number>(threshold)
const { const {
gasCostFormatted, gasCostFormatted,
@ -71,7 +72,7 @@ export const ChangeThresholdModal = ({
let isCurrent = true let isCurrent = true
const calculateChangeThresholdData = async () => { const calculateChangeThresholdData = async () => {
const safeInstance = await getGnosisSafeInstanceAt(safeAddress) const safeInstance = await getGnosisSafeInstanceAt(safeAddress)
const txData = safeInstance.methods.changeThreshold(threshold).encodeABI() const txData = safeInstance.methods.changeThreshold(editedThreshold).encodeABI()
if (isCurrent) { if (isCurrent) {
setData(txData) setData(txData)
} }
@ -81,7 +82,7 @@ export const ChangeThresholdModal = ({
return () => { return () => {
isCurrent = false isCurrent = false
} }
}, [safeAddress, threshold]) }, [safeAddress, editedThreshold])
const getParametersStatus = () => (threshold > 1 ? 'ETH_DISABLED' : 'ENABLED') const getParametersStatus = () => (threshold > 1 ? 'ETH_DISABLED' : 'ENABLED')
@ -135,7 +136,7 @@ export const ChangeThresholdModal = ({
</IconButton> </IconButton>
</Row> </Row>
<Hairline /> <Hairline />
<GnoForm initialValues={{ threshold: threshold.toString(), txParameters }} onSubmit={handleSubmit}> <GnoForm initialValues={{ threshold: editedThreshold.toString(), txParameters }} onSubmit={handleSubmit}>
{() => ( {() => (
<> <>
<Block className={classes.modalContent}> <Block className={classes.modalContent}>
@ -147,6 +148,9 @@ export const ChangeThresholdModal = ({
<Field <Field
data-testid="threshold-select-input" data-testid="threshold-select-input"
name={THRESHOLD_FIELD_NAME} name={THRESHOLD_FIELD_NAME}
onChange={({ target }) => {
setEditedThreshold(parseInt(target.value))
}}
render={(props) => ( render={(props) => (
<> <>
<SelectField {...props} disableError> <SelectField {...props} disableError>
@ -177,7 +181,6 @@ export const ChangeThresholdModal = ({
<TxParametersDetail <TxParametersDetail
txParameters={txParameters} txParameters={txParameters}
onEdit={toggleEditMode} onEdit={toggleEditMode}
compact={true}
parametersStatus={getParametersStatus()} parametersStatus={getParametersStatus()}
isTransactionCreation={isCreation} isTransactionCreation={isCreation}
isTransactionExecution={isExecution} isTransactionExecution={isExecution}

View File

@ -50,13 +50,6 @@ export const EditableTxParameters = ({
toggleEditMode((prev) => !prev) toggleEditMode((prev) => !prev)
} }
// Sends a callback with the last values of txParameters
useEffect(() => {
if (!isEditMode && closeEditModalCallback) {
closeEditModalCallback(txParameters)
}
}, [isEditMode, closeEditModalCallback, txParameters])
const closeEditFormHandler = (txParameters?: TxParameters) => { const closeEditFormHandler = (txParameters?: TxParameters) => {
if (txParameters) { if (txParameters) {
setUseManualValues(true) setUseManualValues(true)
@ -65,6 +58,7 @@ export const EditableTxParameters = ({
setEthGasLimit(txParameters.ethGasLimit) setEthGasLimit(txParameters.ethGasLimit)
setEthGasPrice(txParameters.ethGasPrice) setEthGasPrice(txParameters.ethGasPrice)
setEthNonce(txParameters.ethNonce) setEthNonce(txParameters.ethNonce)
closeEditModalCallback && closeEditModalCallback(txParameters)
} }
toggleStatus() toggleStatus()
} }