// 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 moment from 'moment'; import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { FormattedMessage } from 'react-intl'; import { Container, ContainerTitle, DappUrlInput, SectionList } from '@parity/ui'; import { LinkIcon } from '@parity/ui/Icons'; import styles from './urls.css'; @observer export default class Urls extends Component { static contextTypes = { router: PropTypes.object.isRequired }; static propTypes = { extensionStore: PropTypes.object.isRequired, store: PropTypes.object.isRequired } render () { const { nextUrl } = this.props.store; return (
} /> { this.renderHistory() }
); } renderHistory () { const { history } = this.props.store; if (!history.length) { return (
); } return ( ); } renderHistoryItem = (history) => { if (!history || !history.url) { return null; } const onNavigate = () => this.onGotoUrl(history.url); return ( } key={ history.timestamp } onClick={ onNavigate } >
{ history.hostname }
); } onChangeUrl = (url) => { this.props.store.setNextUrl(url); } onGotoUrl = (url) => { const { router } = this.context; const { extensionStore } = this.props; this.props.store.gotoUrl(url); if (extensionStore.hasExtension) { window.open(this.props.store.currentUrl, '_blank'); } else { router.push('/web'); } } onRestoreUrl = () => { this.props.store.restoreUrl(); } }