diff --git a/apps/frontend/src/components/cln/ChannelDetails/ChannelDetails.tsx b/apps/frontend/src/components/cln/ChannelDetails/ChannelDetails.tsx index ec41265d..8a82e639 100755 --- a/apps/frontend/src/components/cln/ChannelDetails/ChannelDetails.tsx +++ b/apps/frontend/src/components/cln/ChannelDetails/ChannelDetails.tsx @@ -24,7 +24,7 @@ const ChannelDetails = (props) => { const nodeInfo = useSelector(selectNodeInfo); const showToast = useSelector(selectShowToast); const [showToastState, setShowToastState] = useState(false); - const [channelClosed, setChannelClosed] = useState(props.selChannel.current_state !== 'ACTIVE'); + const [channelClosed, setChannelClosed] = useState(props.selChannel.current_state !== 'ACTIVE' && props.selChannel.state !== 'CHANNELD_NORMAL'); const [responseStatus, setResponseStatus] = useState(CallStatus.NONE); const [responseMessage, setResponseMessage] = useState(''); @@ -72,14 +72,17 @@ const ChannelDetails = (props) => { if (response) { setResponseStatus(CallStatus.PENDING); setResponseMessage('Closing Channel...'); - CLNService.closeChannel(props.selChannel.channel_id) + CLNService.closeChannel(props.selChannel.channel_id, props.selChannel.current_state === 'INACTIVE') .then((response: any) => { logger.info(response); if (response.type) { - props.selChannel.current_state = 'PENDING'; + props.onChannelStateChange('PENDING'); setChannelClosed(true); setResponseStatus(CallStatus.SUCCESS); - setResponseMessage('Channel ' + response.type + ' closed' + (response.txid ? (' with transaction id ' + response.txid) : '')); + setResponseMessage('Channel ' + response.type + ' closed' + + (response.txid ? (' with transaction id ' + response.txid) : + response.txids && response.txids.length > 0 ? (' with transaction id ' + response.txids[0]) : '') + ); delayedClearStatusAlert(); } else { setResponseStatus(CallStatus.ERROR); @@ -190,113 +193,6 @@ const ChannelDetails = (props) => {