import { ExternalLinkIcon } from "lucide-react"; import ExternalLink from "src/components/ExternalLink"; import Loading from "src/components/Loading"; import SettingsHeader from "src/components/SettingsHeader"; import { Badge } from "src/components/ui/badge"; import { useAlbyMe } from "src/hooks/useAlbyMe"; import { useNodeDetails } from "src/hooks/useNodeDetails"; import { backendTypeConfigs } from "src/lib/backendType"; import { useInfo } from "src/hooks/useInfo"; export function About() { const { data: info } = useInfo(); const { data: albyMe, error: albyMeError } = useAlbyMe(); const lsps2Source = info?.jitChannelsLiquiditySource; const lsps2Pubkey = lsps2Source?.includes("@") ? lsps2Source.split("@")[0] : undefined; const { data: lsps2NodeDetails } = useNodeDetails(lsps2Pubkey); const lsps2Label = lsps2NodeDetails?.alias || (lsps2Pubkey ? lsps2Pubkey.slice(0, 8) + "..." : lsps2Source); const lsps2MinPaymentSizeSat = info?.jitChannelsMinPaymentSizeMsat ? Math.ceil(info.jitChannelsMinPaymentSizeMsat / 1000) : undefined; const lsps2MaxPaymentSizeSat = info?.jitChannelsMaxPaymentSizeMsat ? Math.floor(info.jitChannelsMaxPaymentSizeMsat / 1000) : undefined; if (!info || (info.albyAccountConnected && !albyMe && !albyMeError)) { return ; } const planCode = albyMe?.subscription.plan_code; let planName: string; if (planCode?.startsWith("buzz_")) { planName = "Pro Cloud"; } else if (planCode?.startsWith("pro_")) { planName = "Pro"; } else if (planCode) { planName = "Paid"; } else { planName = "Free"; } return ( <>

Alby Hub Version

{info.version || "dev"}

Lightning Node Backend

{backendTypeConfigs[info.backendType].icon}

{backendTypeConfigs[info.backendType].title}

{info.databaseType && (

Database Storage

{info.databaseType === "postgres" ? "PostgreSQL" : info.databaseType === "sqlite" ? "SQLite" : info.databaseType}

)} {info.backendType === "LDK" && (

VSS

{info.ldkVssEnabled ? `Enabled (${info.ldkVssUrl})` : "Disabled"}

)} {info.chainDataSourceType && (

Chain Data Source

{info.chainDataSourceType}

{info.chainDataSourceAddress && (

{info.chainDataSourceAddress}

)}
)} {info.jitChannelsLiquiditySource && (

Just-in-Time channels Liquidity Source LSPS2

{lsps2Pubkey ? ( {lsps2Label} ) : (

{lsps2Label}

)}

{info.jitChannelsLiquiditySource}

{(lsps2MinPaymentSizeSat || lsps2MaxPaymentSizeSat) && (

JIT payment size:{" "} {lsps2MinPaymentSizeSat ? new Intl.NumberFormat().format(lsps2MinPaymentSizeSat) : "?"} {" - "} {lsps2MaxPaymentSizeSat ? new Intl.NumberFormat().format(lsps2MaxPaymentSizeSat) : "?"}{" "} sats

)}
)}

Nostr Relays

{info.relays.map((relay) => (

{relay.url} {relay.online ? "online" : "offline"}

))}
{info.albyAccountConnected && albyMe && (

Connected Alby Account

{albyMe.email || albyMe.lightning_address}

)} {info.albyAccountConnected && albyMe?.hub.name && (

Alby Hub Name

{albyMe.hub.name}

)} {info.albyAccountConnected && (

Alby Account Plan

{planName}

)}
); }