import { useRouter } from 'next/router' import { Form, Input, SubmitButton } from '../components/form' import Link from 'next/link' import Button from 'react-bootstrap/Button' import * as Yup from 'yup' import { gql, useMutation, useQuery } from '@apollo/client' import { InvoiceSkeleton } from '../components/invoice' import LayoutCenter from '../components/layout-center' export default function Wallet () { return ( ) } export function WalletForm () { const router = useRouter() if (!router.query.type) { return (
or
) } if (router.query.type === 'fund') { return } else { return } } export const FundSchema = Yup.object({ amount: Yup.number().typeError('must be a number').required('required') .positive('must be positive').integer('must be whole') }) export function FundForm () { const router = useRouter() const [createInvoice, { called }] = useMutation(gql` mutation createInvoice($amount: Int!) { createInvoice(amount: $amount) { id } }`) if (called) { return } return (
{ const { data } = await createInvoice({ variables: { amount: Number(amount) } }) router.push(`/invoices/${data.createInvoice.id}`) }} > generate invoice
) } export const WithdrawlSchema = Yup.object({ invoice: Yup.string().required('required'), maxFee: Yup.number().typeError('must be a number').required('required') .min(0, 'must be positive').integer('must be whole') }) export function WithdrawlForm () { const router = useRouter() const query = gql` { me { msats } }` const { data } = useQuery(query, { pollInterval: 1000 }) const [createWithdrawl] = useMutation(gql` mutation createWithdrawl($invoice: String!, $maxFee: Int!) { createWithdrawl(invoice: $invoice, maxFee: $maxFee) { id } }`) return ( <>

you have {data && data.me.msats} millisats

{ const { data } = await createWithdrawl({ variables: { invoice, maxFee: Number(maxFee) } }) router.push(`/withdrawls/${data.createWithdrawl.id}`) }} > withdrawl
) }