import { useQuery } from '@apollo/client' import gql from 'graphql-tag' import LayoutCenter from '../../components/layout-center' import { CopyInput, Input, InputSkeleton } from '../../components/form' import InputGroup from 'react-bootstrap/InputGroup' import InvoiceStatus from '../../components/invoice-status' export async function getServerSideProps ({ params: { id } }) { return { props: { id } } } export default function Withdrawl ({ id }) { const query = gql` { withdrawl(id: ${id}) { bolt11 satsPaid satsFeePaying satsFeePaid status } }` return ( ) } export function WithdrawlSkeleton ({ status }) { return ( <>
) } function LoadWithdrawl ({ query }) { const { loading, error, data } = useQuery(query, { pollInterval: 1000 }) if (error) return
error
if (!data || loading) { return } let status = 'pending' let variant = 'default' switch (data.withdrawl.status) { case 'CONFIRMED': status = `sent ${data.withdrawl.satsPaid} sats with ${data.withdrawl.satsFeePaid} sats in routing fees` variant = 'confirmed' break case 'INSUFFICIENT_BALANCE': status = <>insufficient balance contact keyan! variant = 'failed' break case 'INVALID_PAYMENT': status = 'invalid invoice' variant = 'failed' break case 'PATHFINDING_TIMEOUT': status = <>timed out finding route try increasing max fee variant = 'failed' break case 'ROUTE_NOT_FOUND': status = <>no route try increasing max fee variant = 'failed' break default: break } return ( <>
sats} />
) }