import { Alert } from 'react-bootstrap' import { useMe } from './me' import FeeButton, { FeeButtonProvider } from './fee-button' import { TERRITORY_BILLING_OPTIONS, TERRITORY_GRACE_DAYS } from '../lib/constants' import { Form } from './form' import { datePivot } from '../lib/time' import { LongCountdown } from './countdown' import { useCallback } from 'react' import { useApolloClient, useMutation } from '@apollo/client' import { SUB_PAY } from '../fragments/subs' export default function TerritoryPaymentDue ({ sub }) { const me = useMe() const client = useApolloClient() const [paySub] = useMutation(SUB_PAY) const dueDate = datePivot( new Date(sub.billedLastAt), sub.billingType === 'MONTHLY' ? { months: 1, days: TERRITORY_GRACE_DAYS } : { years: 1, days: TERRITORY_GRACE_DAYS }) const onSubmit = useCallback( async ({ ...variables }) => { const { error } = await paySub({ variables }) if (error) { throw new Error({ message: error.toString() }) } }, [client, paySub]) if (!sub || sub.userId !== Number(me?.id) || sub.status === 'ACTIVE') return null return ( {sub.status === 'STOPPED' ? ( <> Your ~{sub.name} territory has been archived!
Make a payment to reactivate it.
) : ( <> Your ~{sub.name} territory payment is due!
Your territory will be archived in otherwise.
)}
) }