Browse Source

fix(peers header): fix some styles

renovate/lint-staged-8.x
Jack Mallers 7 years ago
parent
commit
f2ef242b2e
  1. 1
      app/components/Peers/Peers.js
  2. 1
      app/icons/user.svg
  3. 42
      app/routes/peers/components/Peers.js
  4. 48
      app/routes/peers/components/Peers.scss
  5. 1
      app/routes/peers/containers/PeersContainer.js

1
app/components/Peers/Peers.js

@ -36,6 +36,7 @@ const Peers = ({
return ( return (
<div className={styles.peers}> <div className={styles.peers}>
<PeerModal isOpen={peerModalOpen} resetPeer={setPeer} peer={modalPeer} disconnect={disconnect} /> <PeerModal isOpen={peerModalOpen} resetPeer={setPeer} peer={modalPeer} disconnect={disconnect} />
<PeerForm form={peerForm} setForm={setPeerForm} connect={connect} /> <PeerForm form={peerForm} setForm={setPeerForm} connect={connect} />
<div className={styles.header}> <div className={styles.header}>
<h3>Peers</h3> <h3>Peers</h3>

1
app/icons/user.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-user"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>

After

Width:  |  Height:  |  Size: 313 B

42
app/routes/peers/components/Peers.js

@ -1,6 +1,9 @@
import React, { Component } from 'react' import React, { Component } from 'react'
import PropTypes from 'prop-types' import PropTypes from 'prop-types'
import Isvg from 'react-inlinesvg'
import userIcon from 'icons/user.svg'
import { FaUser, FaRepeat } from 'react-icons/lib/fa'
import { MdSearch } from 'react-icons/lib/md' import { MdSearch } from 'react-icons/lib/md'
import PeerForm from 'components/Peers/PeerForm' import PeerForm from 'components/Peers/PeerForm'
@ -16,6 +19,7 @@ class Peers extends Component {
render() { render() {
const { const {
fetchPeers,
peerFormProps, peerFormProps,
setPeerForm, setPeerForm,
setPeer, setPeer,
@ -24,9 +28,24 @@ class Peers extends Component {
peerModalOpen, peerModalOpen,
filteredPeers, filteredPeers,
peers: { peer, searchQuery } peers: { peer, searchQuery },
info: { data: { identity_pubkey } }
} = this.props } = this.props
const refreshClicked = event => {
// store event in icon so we dont get an error when react clears it
const icon = event.currentTarget
// fetch peers
fetchPeers()
// clear animation after the second so we can reuse it
setTimeout(() => { icon.style.animation = '' }, 1000)
// spin icon for 1 sec
icon.style.animation = 'spin 1000ms linear 1'
}
return ( return (
<div> <div>
<div className={styles.search}> <div className={styles.search}>
@ -48,6 +67,19 @@ class Peers extends Component {
</div> </div>
<header className={styles.header}> <header className={styles.header}>
<div className={styles.titleContainer}>
<div className={styles.left}>
<div className={styles.identityPubkey}>
<section className={styles.userIcon}>
<Isvg src={userIcon} />
</section>
<section>
<h4>Your node public key</h4>
<h2>{identity_pubkey}</h2>
</section>
</div>
</div>
</div>
<div className={styles.addPeerContainer}> <div className={styles.addPeerContainer}>
<div className={`buttonPrimary ${styles.newPeerButton}`} onClick={() => setPeerForm({ isOpen: true })}> <div className={`buttonPrimary ${styles.newPeerButton}`} onClick={() => setPeerForm({ isOpen: true })}>
Add new peer Add new peer
@ -55,6 +87,14 @@ class Peers extends Component {
</div> </div>
</header> </header>
<div className={styles.refreshContainer}>
<span className={`${styles.refresh} hint--left`} data-hint='Refresh your peers list'>
<FaRepeat
onClick={refreshClicked}
/>
</span>
</div>
<div className={styles.peers}> <div className={styles.peers}>
{ {
filteredPeers.map(filteredPeer => <Peer key={filteredPeer.peer_id} peer={filteredPeer} setPeer={setPeer} />) filteredPeers.map(filteredPeer => <Peer key={filteredPeer.peer_id} peer={filteredPeer} setPeer={setPeer} />)

48
app/routes/peers/components/Peers.scss

@ -34,7 +34,41 @@
.header { .header {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
justify-content: flex-end; justify-content: space-between;
.titleContainer {
padding: 40px;
.left {
padding: 10px;
}
.left, span {
display: inline-block;
}
.identityPubkey {
font-size: 30px;
margin-right: 10px;
display: flex;
flex-direction: row;
.userIcon {
margin-right: 10px;
}
section h4 {
font-size: 10px;
text-transform: uppercase;
letter-spacing: 1.2px;
}
section h2 {
font-size: 14px;
margin-top: 5px;
}
}
}
.addPeerContainer { .addPeerContainer {
padding: 40px; padding: 40px;
@ -45,6 +79,18 @@
} }
} }
.refreshContainer {
display: flex;
flex-direction: row;
justify-content: flex-end;
padding: 0 40px;
.refresh {
cursor: pointer;
color: $bluegrey;
}
}
.peers { .peers {
padding: 40px; padding: 40px;
} }

1
app/routes/peers/containers/PeersContainer.js

@ -26,6 +26,7 @@ const mapDispatchToProps = {
const mapStateToProps = state => ({ const mapStateToProps = state => ({
peers: state.peers, peers: state.peers,
info: state.info,
peerModalOpen: peersSelectors.peerModalOpen(state), peerModalOpen: peersSelectors.peerModalOpen(state),
filteredPeers: peersSelectors.filteredPeers(state) filteredPeers: peersSelectors.filteredPeers(state)

Loading…
Cancel
Save