|
|
@ -1,6 +1,7 @@ |
|
|
|
import React from 'react' |
|
|
|
import PropTypes from 'prop-types' |
|
|
|
import { TiPlus } from 'react-icons/lib/ti' |
|
|
|
import { FaRepeat } from 'react-icons/lib/fa' |
|
|
|
import ChannelModal from './ChannelModal' |
|
|
|
import ChannelForm from './ChannelForm' |
|
|
|
import Channel from './Channel' |
|
|
@ -9,6 +10,7 @@ import ClosedPendingChannel from './ClosedPendingChannel' |
|
|
|
import styles from './Channels.scss' |
|
|
|
|
|
|
|
const Channels = ({ |
|
|
|
fetchChannels, |
|
|
|
ticker, |
|
|
|
peers, |
|
|
|
channelsLoading, |
|
|
@ -22,7 +24,22 @@ const Channels = ({ |
|
|
|
closeChannel, |
|
|
|
currentTicker, |
|
|
|
explorerLinkBase |
|
|
|
}) => ( |
|
|
|
}) => { |
|
|
|
const refreshClicked = (event) => { |
|
|
|
// store event in icon so we dont get an error when react clears it
|
|
|
|
let icon = event.currentTarget |
|
|
|
|
|
|
|
// fetch channels
|
|
|
|
fetchChannels() |
|
|
|
|
|
|
|
// 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 ( |
|
|
|
<div className={styles.channels}> |
|
|
|
<ChannelModal |
|
|
|
isOpen={channelModalOpen} |
|
|
@ -34,6 +51,16 @@ const Channels = ({ |
|
|
|
<ChannelForm form={channelForm} setForm={setChannelForm} ticker={ticker} peers={peers} openChannel={openChannel} currentTicker={currentTicker} /> |
|
|
|
<div className={styles.header}> |
|
|
|
<h3>Channels</h3> |
|
|
|
<span |
|
|
|
className={`${styles.refresh} hint--top`} |
|
|
|
data-hint='Refresh your channels list' |
|
|
|
|
|
|
|
> |
|
|
|
<FaRepeat |
|
|
|
style={{ verticalAlign: 'baseline' }} |
|
|
|
onClick={refreshClicked} |
|
|
|
/> |
|
|
|
</span> |
|
|
|
<div |
|
|
|
className={`${styles.openChannel} hint--top`} |
|
|
|
data-hint='Open a channel' |
|
|
@ -82,7 +109,8 @@ const Channels = ({ |
|
|
|
} |
|
|
|
</ul> |
|
|
|
</div> |
|
|
|
) |
|
|
|
) |
|
|
|
} |
|
|
|
|
|
|
|
Channels.propTypes = { |
|
|
|
ticker: PropTypes.object.isRequired, |
|
|
|