// Copyright 2015-2017 Parity Technologies (UK) Ltd. // This file is part of Parity. // Parity is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // Parity is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with Parity. If not, see . import { observer } from 'mobx-react'; import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { FormattedMessage } from 'react-intl'; import { connect } from 'react-redux'; import { Button, Container, Page, SectionList, VaultCard } from '@parity/ui'; import { AccountsIcon, AddIcon, EditIcon, LockedIcon, UnlockedIcon } from '@parity/ui/Icons'; import VaultAccounts from './VaultAccounts'; import VaultCreate from './VaultCreate'; import VaultLock from './VaultLock'; import VaultMeta from './VaultMeta'; import VaultUnlock from './VaultUnlock'; import Store from './store'; import styles from './vaults.css'; @observer class Vaults extends Component { static contextTypes = { api: PropTypes.object.isRequired }; static propTypes = { accounts: PropTypes.object.isRequired }; static Store = Store; vaultStore = Store.get(this.context.api); componentWillMount () { return this.vaultStore.loadVaults(); } render () { return ( } key='create' label={ } onClick={ this.onOpenCreate } /> ] } title={ } > { this.renderList() } ); } renderList () { const { vaults } = this.vaultStore; if (!vaults || !vaults.length) { return ( ); } return ( ); } renderVault = (vault) => { const { accounts } = this.props; const { isOpen, name } = vault; const vaultAccounts = Object .keys(accounts) .filter((address) => accounts[address].uuid && accounts[address].meta.vault === vault.name); const onClickAccounts = () => { this.onOpenAccounts(name); return false; }; const onClickEdit = () => { this.onOpenEdit(name); return false; }; const onClickOpen = () => { isOpen ? this.onOpenLockVault(name) : this.onOpenUnlockVault(name); return false; }; return ( } key='accounts' label={ } onClick={ onClickAccounts } />,