32 lines
1.0 KiB
TypeScript
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,
|
|
};
|
|
}
|