diff --git a/src/routes/safe/components/Layout.jsx b/src/routes/safe/components/Layout.jsx index ee6cfc94..3df55380 100644 --- a/src/routes/safe/components/Layout.jsx +++ b/src/routes/safe/components/Layout.jsx @@ -90,7 +90,7 @@ class Layout extends React.Component { render() { const { - safe, provider, network, classes, granted, tokens, activeTokens, createTransaction, + safe, provider, network, classes, granted, tokens, activeTokens, createTransaction, updateSafeName, } = this.props const { tabIndex } = this.state @@ -151,6 +151,7 @@ class Layout extends React.Component { threshold={safe.threshold} owners={safe.owners} createTransaction={createTransaction} + updateSafeName={updateSafeName} /> )} diff --git a/src/routes/safe/components/Settings/UpdateSafeName/index.jsx b/src/routes/safe/components/Settings/UpdateSafeName/index.jsx index 24980f6b..f0ebeeb3 100644 --- a/src/routes/safe/components/Settings/UpdateSafeName/index.jsx +++ b/src/routes/safe/components/Settings/UpdateSafeName/index.jsx @@ -1,10 +1,17 @@ // @flow -import * as React from 'react' +import React, { useState } from 'react' import { withStyles } from '@material-ui/core/styles' import Block from '~/components/layout/Block' import Col from '~/components/layout/Col' +import Field from '~/components/forms/Field' +import { + composeValidators, required, minMaxLength, +} from '~/components/forms/validator' +import TextField from '~/components/forms/TextField' +import GnoForm from '~/components/forms/GnoForm' import Row from '~/components/layout/Row' import Paragraph from '~/components/layout/Paragraph' +import Hairline from '~/components/layout/Hairline' import Button from '~/components/layout/Button' import { sm, boldFont } from '~/theme/variables' import { styles } from './style' @@ -21,36 +28,63 @@ const saveButtonStyle = { type Props = { classes: Object, + safeAddress: string, + safeName: string, + updateSafe: Funtion } -class UpdateSafeName extends React.Component { - render() { - const { classes } = this.props +const UpdateSafeName = (props: Props) => { + const { + classes, + safeAddress, + safeName, + updateSafeName, + } = props - return ( - - - - Details - - - - - - - - - ) + const handleSubmit = (values) => { + updateSafeName(safeAddress, values.safeName) } + + return ( + + + {() => ( + + + + Modify Safe name + + + + + + + + + + + + + )} + + + ) } export default withStyles(styles)(UpdateSafeName) diff --git a/src/routes/safe/components/Settings/index.jsx b/src/routes/safe/components/Settings/index.jsx index 46583a51..4ee1a4dd 100644 --- a/src/routes/safe/components/Settings/index.jsx +++ b/src/routes/safe/components/Settings/index.jsx @@ -2,6 +2,7 @@ import * as React from 'react' import cn from 'classnames' import { List } from 'immutable' +import { connect } from 'react-redux' import { withStyles } from '@material-ui/core/styles' import Block from '~/components/layout/Block' import Col from '~/components/layout/Col' @@ -11,6 +12,8 @@ import Paragraph from '~/components/layout/Paragraph' import Hairline from '~/components/layout/Hairline' import type { Owner } from '~/routes/safe/store/models/owner' import ThresholdSettings from './ThresholdSettings' +import UpdateSafeName from './UpdateSafeName' +import actions, { type Actions } from './actions' import { styles } from './style' type State = { @@ -18,7 +21,7 @@ type State = { menuOptionIndex: number, } -type Props = { +type Props = Actions & { classes: Object, granted: boolean, etherScanLink: string, @@ -52,7 +55,15 @@ class Settings extends React.Component { render() { const { showRemoveSafe, menuOptionIndex } = this.state const { - classes, granted, etherScanLink, safeAddress, safeName, owners, threshold, createTransaction, + classes, + granted, + etherScanLink, + safeAddress, + safeName, + owners, + threshold, + createTransaction, + updateSafeName, } = this.props return ( @@ -113,7 +124,13 @@ class Settings extends React.Component { - {menuOptionIndex === 1 &&

To be done

} + {menuOptionIndex === 1 && ( + + )} {granted && menuOptionIndex === 2 &&

To be done

} {granted && menuOptionIndex === 3 && ( { } } -export default withStyles(styles)(Settings) +const settingsComponent = withStyles(styles)(Settings) + +export default connect( + undefined, + actions, +)(settingsComponent)