Jack Mallers
8 years ago
12 changed files with 195 additions and 46 deletions
@ -0,0 +1,35 @@ |
|||||
|
// @flow
|
||||
|
import React, { Component } from 'react' |
||||
|
import { TiPlus } from 'react-icons/lib/ti' |
||||
|
import Peer from './components/Peer' |
||||
|
import styles from './Peers.scss' |
||||
|
|
||||
|
class Peers extends Component { |
||||
|
render() { |
||||
|
const { peersLoading, peers } = this.props |
||||
|
return ( |
||||
|
<div className={styles.peers}> |
||||
|
<div className={styles.header}> |
||||
|
<h3>Peers</h3> |
||||
|
<div |
||||
|
className={`${styles.connectPeer} hint--top`} |
||||
|
data-hint='Connect to a peer' |
||||
|
> |
||||
|
<TiPlus /> |
||||
|
</div> |
||||
|
</div> |
||||
|
<ul> |
||||
|
{ |
||||
|
!peersLoading && peers.length ? |
||||
|
peers.map(peer => <Peer key={peer.peer_id} peer={peer} />) |
||||
|
: |
||||
|
'Loading...' |
||||
|
} |
||||
|
</ul> |
||||
|
</div> |
||||
|
) |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
export default Peers |
@ -0,0 +1,45 @@ |
|||||
|
@import '../../../../../variables.scss'; |
||||
|
|
||||
|
.peers { |
||||
|
width: 75%; |
||||
|
margin: 50px auto; |
||||
|
|
||||
|
.header { |
||||
|
margin-bottom: 10px; |
||||
|
|
||||
|
h3, .connectPeer { |
||||
|
display: inline-block; |
||||
|
} |
||||
|
|
||||
|
h3 { |
||||
|
text-align: left; |
||||
|
} |
||||
|
|
||||
|
.connectPeer { |
||||
|
float: right; |
||||
|
cursor: pointer; |
||||
|
|
||||
|
svg { |
||||
|
padding: 3px; |
||||
|
border-radius: 50%; |
||||
|
border: 1px solid $main; |
||||
|
color: $main; |
||||
|
transition: all 0.25s; |
||||
|
|
||||
|
&:hover { |
||||
|
border-color: darken($main, 10%); |
||||
|
color: darken($main, 10%); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
h3 { |
||||
|
text-transform: uppercase; |
||||
|
color: $darkestgrey; |
||||
|
letter-spacing: 1.6px; |
||||
|
font-size: 14px; |
||||
|
font-weight: 400; |
||||
|
margin-bottom: 10px; |
||||
|
} |
||||
|
} |
@ -0,0 +1,19 @@ |
|||||
|
// @flow
|
||||
|
import React, { Component } from 'react' |
||||
|
import styles from './Peer.scss' |
||||
|
|
||||
|
class Peer extends Component { |
||||
|
render() { |
||||
|
const { peer } = this.props |
||||
|
console.log('peer: ', peer) |
||||
|
return ( |
||||
|
<li className={styles.peer}> |
||||
|
<h4>{peer.address}</h4> |
||||
|
<h1>{peer.pub_key}</h1> |
||||
|
</li> |
||||
|
) |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
export default Peer |
@ -0,0 +1,34 @@ |
|||||
|
@import '../../../../../../../variables.scss'; |
||||
|
|
||||
|
.peer { |
||||
|
position: relative; |
||||
|
background: $white; |
||||
|
padding: 10px; |
||||
|
border-top: 1px solid $grey; |
||||
|
cursor: pointer; |
||||
|
transition: all 0.25s; |
||||
|
|
||||
|
&:hover { |
||||
|
opacity: 0.75; |
||||
|
} |
||||
|
|
||||
|
&:first-child { |
||||
|
border: none; |
||||
|
} |
||||
|
|
||||
|
h4, h1 { |
||||
|
margin: 10px 0; |
||||
|
} |
||||
|
|
||||
|
h4 { |
||||
|
font-size: 14px; |
||||
|
font-weight: bold; |
||||
|
color: $black; |
||||
|
} |
||||
|
|
||||
|
h1 { |
||||
|
font-size: 18px; |
||||
|
font-weight: 200; |
||||
|
color: $main; |
||||
|
} |
||||
|
} |
@ -0,0 +1,3 @@ |
|||||
|
import Peer from './Peer' |
||||
|
|
||||
|
export default Peer |
@ -0,0 +1,3 @@ |
|||||
|
import Peers from './Peers' |
||||
|
|
||||
|
export default Peers |
After Width: | Height: | Size: 459 B |
Loading…
Reference in new issue