Files
automatisch/packages/web/src/hooks/useSubscriptionStatus.ee.ts
2023-04-12 20:08:45 +00:00

32 lines
1.0 KiB
TypeScript

import { useQuery } from '@apollo/client';
import { DateTime } from 'luxon';
import { GET_SUBSCRIPTION_STATUS } from 'graphql/queries/get-subscription-status.ee';
import useFormatMessage from './useFormatMessage';
type UseSubscriptionStatusReturn = {
cancellationEffectiveDate: DateTime;
message: string;
} | null;
export default function useSubscriptionStatus(): UseSubscriptionStatusReturn {
const formatMessage = useFormatMessage();
const { data, loading, } = useQuery(GET_SUBSCRIPTION_STATUS);
const cancellationEffectiveDate = data?.getSubscriptionStatus?.cancellationEffectiveDate as string;
const hasCancelled = !!cancellationEffectiveDate;
if (loading || !hasCancelled) return null;
const cancellationEffectiveDateObject = DateTime.fromMillis(Number(cancellationEffectiveDate)).startOf('day');
return {
message: formatMessage(
'subscriptionCancelledAlert.text',
{
date: cancellationEffectiveDateObject.toFormat('DDD')
}
),
cancellationEffectiveDate: cancellationEffectiveDateObject,
};
}