diff --git a/apps/frontend/src/components/cln/ChannelDetails/ChannelDetails.tsx b/apps/frontend/src/components/cln/ChannelDetails/ChannelDetails.tsx index 8a82e639..e0288696 100755 --- a/apps/frontend/src/components/cln/ChannelDetails/ChannelDetails.tsx +++ b/apps/frontend/src/components/cln/ChannelDetails/ChannelDetails.tsx @@ -4,7 +4,7 @@ import PerfectScrollbar from 'react-perfect-scrollbar'; import { Spinner, Card, Row, Col, ProgressBar, OverlayTrigger, Tooltip } from 'react-bootstrap'; import { copyTextToClipboard, formatCurrency, titleCase } from '../../../utilities/data-formatters'; -import { CallStatus, CLEAR_STATUS_ALERT_DELAY, Units } from '../../../utilities/constants'; +import { CallStatus, channelStateMap, CLEAR_STATUS_ALERT_DELAY, Units } from '../../../utilities/constants'; import { ActionSVG } from '../../../svgs/Action'; import { CloseSVG } from '../../../svgs/Close'; import StatusAlert from '../../shared/StatusAlert/StatusAlert'; @@ -119,7 +119,7 @@ const ChannelDetails = (props) => { {titleCase(props.selChannel.current_state)}} + overlay={{titleCase(props.selChannel.current_state) + ' - ' + (channelStateMap[props.selChannel.state] ?? titleCase(props.selChannel.state?.replaceAll('_', ' ')))}} >
diff --git a/apps/frontend/src/components/cln/Channels/Channels.tsx b/apps/frontend/src/components/cln/Channels/Channels.tsx index 80ea2fd1..e60274b1 100755 --- a/apps/frontend/src/components/cln/Channels/Channels.tsx +++ b/apps/frontend/src/components/cln/Channels/Channels.tsx @@ -5,7 +5,7 @@ import { Spinner, Card, Row, Col, ListGroup, Alert, ProgressBar, OverlayTrigger, import { titleCase } from '../../../utilities/data-formatters'; import { ActionSVG } from '../../../svgs/Action'; -import { STAGERRED_SPRING_VARIANTS_3 } from '../../../utilities/constants'; +import { channelStateMap, STAGERRED_SPRING_VARIANTS_3 } from '../../../utilities/constants'; import { NoChannelLightSVG } from '../../../svgs/NoChannelLight'; import { NoChannelDarkSVG } from '../../../svgs/NoChannelDark'; import { useSelector } from 'react-redux'; @@ -45,7 +45,7 @@ const Channels = (props) => { {titleCase(channel.current_state)}} + overlay={{titleCase(channel.current_state) + ' - ' + (channelStateMap[channel.state] ?? titleCase(channel.state?.replaceAll('_', ' ')))}} >
diff --git a/apps/frontend/src/utilities/constants.ts b/apps/frontend/src/utilities/constants.ts index 448b8f51..5b8e055c 100755 --- a/apps/frontend/src/utilities/constants.ts +++ b/apps/frontend/src/utilities/constants.ts @@ -52,6 +52,22 @@ export enum ApplicationModes { DARK = 'DARK', } +export const channelStateMap: Record = { + OPENINGD: "Opening", + CHANNELD_AWAITING_LOCKIN: "Awaiting Lock-In", + CHANNELD_SHUTTING_DOWN: "Shutting Down", + CLOSINGD_SIGEXCHANGE: "Closing Signature Exchange", + CLOSINGD_COMPLETE: "Closing Complete", + AWAITING_UNILATERAL: "Awaiting Unilateral", + FUNDING_SPEND_SEEN: "Funding Spend Seen", + ONCHAIN: "On-Chain", + DUALOPEND_OPEN_INIT: "Dual Open Initialized", + DUALOPEND_AWAITING_LOCKIN: "Dual Open Awaiting Lock-In", + CHANNELD_AWAITING_SPLICE: "Awaiting Splice", + DUALOPEND_OPEN_COMMITTED: "Dual Open Committed", + DUALOPEND_OPEN_COMMIT_READY: "Dual Open Commit Ready", +}; + export const CURRENCY_UNITS = ['SATS', 'BTC']; export const CURRENCY_UNIT_FORMATS = { Sats: '1.0-0', BTC: '1.6-6', OTHER: '1.2-2' }; diff --git a/apps/frontend/src/utilities/data-formatters.ts b/apps/frontend/src/utilities/data-formatters.ts index 09f31d58..b961b883 100644 --- a/apps/frontend/src/utilities/data-formatters.ts +++ b/apps/frontend/src/utilities/data-formatters.ts @@ -129,7 +129,8 @@ export const sortDescByKey = (array, key) => { }; export const titleCase = (str: string | undefined) => { - return str && typeof str === 'string' ? str[0].toUpperCase() + str.substring(1).toLowerCase() : ''; + if (!str || typeof str !== 'string') return ''; + return str.toLowerCase().replace(/\b\w/g, (char) => char.toUpperCase()); }; export const copyTextToClipboard = (textToCopy: string | undefined) => {