import React, { useState, useEffect } from 'react'; import { useAccountState } from 'src/context/AccountContext'; import { useGetChannelAmountInfoQuery } from 'src/graphql/queries/__generated__/getNodeInfo.generated'; import styled from 'styled-components'; import { Settings } from 'react-feather'; import { IconCursor } from 'src/views/channels/channels/Channel.style'; import { ChannelManage } from 'src/views/channels/channels/ChannelManage'; import { GridWrapper } from 'src/components/gridWrapper/GridWrapper'; import { withApollo } from 'config/client'; import { Channels } from '../src/views/channels/channels/Channels'; import { PendingChannels } from '../src/views/channels/pendingChannels/PendingChannels'; import { ClosedChannels } from '../src/views/channels/closedChannels/ClosedChannels'; import { CardWithTitle, SubTitle, SmallButton, } from '../src/components/generic/Styled'; import { mediaWidths } from '../src/styles/Themes'; const ChannelsCardTitle = styled.div` display: flex; justify-content: space-between; @media (${mediaWidths.mobile}) { flex-direction: column; align-items: center; } `; const ButtonRow = styled.div` display: flex; flex-wrap: wrap; `; const ChannelView = () => { const [isOpen, isOpenSet] = useState(false); const [view, setView] = useState(1); const [amounts, setAmounts] = useState({ active: 0, pending: 0, closed: 0, }); const { auth } = useAccountState(); const { data } = useGetChannelAmountInfoQuery({ skip: !auth, variables: { auth }, }); useEffect(() => { if (data && data.getNodeInfo) { const { active_channels_count, closed_channels_count, pending_channels_count, } = data.getNodeInfo; setAmounts({ active: active_channels_count, pending: pending_channels_count, closed: closed_channels_count, }); } }, [data]); const getView = () => { switch (view) { case 2: return ; case 3: return ; default: return ; } }; const getTitle = () => { switch (view) { case 2: return 'Pending Channels'; case 3: return 'Closed Channels'; default: return 'Open Channels'; } }; return ( {getTitle()} setView(1)}> {`Open (${amounts.active})`} setView(2)}> {`Pending (${amounts.pending})`} setView(3)}> {`Closed (${amounts.closed})`} {view === 1 && ( isOpenSet(p => !p)} /> )} {view === 1 && isOpen && } {getView()} ); }; const Wrapped = () => ( ); export default withApollo(Wrapped);