Files
automatisch/packages/web/src/hooks/useUsageAlert.ee.ts
2023-03-21 20:25:46 +00:00

48 lines
1.2 KiB
TypeScript

import * as URLS from 'config/urls';
import useFormatMessage from './useFormatMessage';
import useUsageData from './useUsageData.ee';
type UseUsageAlertReturn = {
showAlert: true;
hasExceededLimit: boolean;
alertMessage: string;
url: string;
consumptionPercentage: number;
};
type UseUsageNoAlertReturn = {
showAlert: false;
};
export default function useUsageAlert(): UseUsageAlertReturn | UseUsageNoAlertReturn {
const {
allowedTaskCount,
consumedTaskCount,
nextResetAt,
loading
} = useUsageData();
const formatMessage = useFormatMessage();
if (loading) {
return { showAlert: false };
}
const withinUsageThreshold = consumedTaskCount > allowedTaskCount * 0.7;
const consumptionPercentage = consumedTaskCount / allowedTaskCount * 100;
const hasExceededLimit = consumedTaskCount >= allowedTaskCount;
const alertMessage = formatMessage('usageAlert.informationText', {
allowedTaskCount,
consumedTaskCount,
relativeResetDate: nextResetAt?.toRelative(),
});
return {
showAlert: withinUsageThreshold,
hasExceededLimit,
alertMessage,
consumptionPercentage,
url: URLS.SETTINGS_PLAN_UPGRADE,
};
}