saleor-dashboard/src/utils/limits.ts

34 lines
810 B
TypeScript
Raw Normal View History

import { LimitInfoFragment, RefreshLimitsQuery } from "@dashboard/graphql";
export function hasLimits(
limits: RefreshLimitsQuery["shop"]["limits"] | undefined,
key: keyof LimitInfoFragment,
): boolean {
if (limits === undefined) {
return false;
}
return limits.allowedUsage[key] !== null;
}
/**
* Returns whether or not limit has been reached.
* If limits are undefined, returns false.
* */
export function isLimitReached(
limits: RefreshLimitsQuery["shop"]["limits"] | undefined,
key: keyof LimitInfoFragment,
): boolean {
if (!hasLimits(limits, key)) {
return false;
}
const currentUsage = limits?.currentUsage[key];
const allowedUsage = limits?.allowedUsage[key];
if (!currentUsage || !allowedUsage) {
return false;
}
return currentUsage >= allowedUsage!;
}