Browse Source

AccountSettings type, ability to adjust minConfirmations

master
meriadec 7 years ago
parent
commit
cb687b7c74
No known key found for this signature in database GPG Key ID: 1D2FC2305E2CB399
  1. 2
      src/components/AccountPage.js
  2. 3
      src/components/SelectAccount/stories.js
  3. 33
      src/components/modals/SettingsAccount.js
  4. 6
      src/types/common.js

2
src/components/AccountPage.js

@ -25,7 +25,7 @@ import TransactionsList from 'components/TransactionsList'
type Props = { type Props = {
t: T, t: T,
account: Account, account?: Account,
openModal: Function, openModal: Function,
} }

3
src/components/SelectAccount/stories.js

@ -22,6 +22,9 @@ const accounts = [...Array(20)].map(() => ({
path: '', path: '',
transactions: [], transactions: [],
unit: getDefaultUnitByCoinType(0), unit: getDefaultUnitByCoinType(0),
settings: {
minConfirmations: 2,
},
})) }))
type State = { type State = {

33
src/components/modals/SettingsAccount.js

@ -18,9 +18,11 @@ import Input from 'components/base/Input'
import Modal, { ModalBody } from 'components/base/Modal' import Modal, { ModalBody } from 'components/base/Modal'
import Text from 'components/base/Text' import Text from 'components/base/Text'
import Icon from 'components/base/Icon' import Icon from 'components/base/Icon'
import Label from 'components/base/Label'
type State = { type State = {
accountName: string | null, accountName: string | null,
minConfirmations: number | null,
editName: boolean, editName: boolean,
nameHovered: boolean, nameHovered: boolean,
} }
@ -44,6 +46,7 @@ const mapDispatchToProps = {
const defaultState = { const defaultState = {
editName: false, editName: false,
accountName: null, accountName: null,
minConfirmations: null,
nameHovered: false, nameHovered: false,
} }
@ -57,7 +60,7 @@ class SettingsAccount extends PureComponent<Props, State> {
} }
getAccount(data: Object) { getAccount(data: Object) {
const { accountName } = this.state const { accountName, minConfirmations } = this.state
const account = get(data, 'account', {}) const account = get(data, 'account', {})
@ -68,6 +71,10 @@ class SettingsAccount extends PureComponent<Props, State> {
name: accountName, name: accountName,
} }
: {}), : {}),
settings: {
...account.settings,
minConfirmations: minConfirmations || account.settings.minConfirmations,
},
} }
} }
@ -76,6 +83,20 @@ class SettingsAccount extends PureComponent<Props, State> {
nameHovered: state, nameHovered: state,
}) })
handleChangeMinConfirmations = account => minConfirmations => {
const { updateAccount } = this.props
this.setState({ minConfirmations })
window.requestAnimationFrame(() => {
updateAccount({
...account,
settings: {
...account.settings,
minConfirmations,
},
})
})
}
handleEditName = (state: boolean) => () => handleEditName = (state: boolean) => () =>
this.setState({ this.setState({
nameHovered: false, nameHovered: false,
@ -179,6 +200,16 @@ class SettingsAccount extends PureComponent<Props, State> {
</Box> </Box>
)} )}
</Box> </Box>
<Box>
<Label>{'Minimum confirmations'}</Label>
<Input
type="number"
min={1}
max={100}
value={account.settings.minConfirmations}
onChange={this.handleChangeMinConfirmations(account)}
/>
</Box>
<Box horizontal grow alignItems="flex-end" flow={2}> <Box horizontal grow alignItems="flex-end" flow={2}>
<Box grow> <Box grow>
<Button onClick={this.handleArchiveAccount(account)}> <Button onClick={this.handleArchiveAccount(account)}>

6
src/types/common.js

@ -18,10 +18,15 @@ export type Transaction = {
balance: number, balance: number,
hash: string, hash: string,
receivedAt: string, receivedAt: string,
confirmations: number,
} }
// -------------------- Accounts // -------------------- Accounts
export type AccountSettings = {
minConfirmations: number,
}
export type Account = { export type Account = {
address: string, address: string,
addresses: Array<string>, addresses: Array<string>,
@ -35,6 +40,7 @@ export type Account = {
path: string, path: string,
transactions: Array<Transaction>, transactions: Array<Transaction>,
unit: Unit, unit: Unit,
settings: AccountSettings,
} }
export type Accounts = Array<Account> export type Accounts = Array<Account>

Loading…
Cancel
Save