2023-01-16 09:45:12 +00:00
|
|
|
import { LimitInfoFragment, RefreshLimitsQuery } from "@dashboard/graphql";
|
2021-04-13 09:59:16 +00:00
|
|
|
|
|
|
|
export function hasLimits(
|
2023-01-18 09:23:24 +00:00
|
|
|
limits: RefreshLimitsQuery["shop"]["limits"] | undefined,
|
2022-06-21 09:36:55 +00:00
|
|
|
key: keyof LimitInfoFragment,
|
2021-04-13 09:59:16 +00:00
|
|
|
): boolean {
|
|
|
|
if (limits === undefined) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
return limits.allowedUsage[key] !== null;
|
|
|
|
}
|
2023-01-18 09:23:24 +00:00
|
|
|
/**
|
|
|
|
* Returns whether or not limit has been reached.
|
|
|
|
* If limits are undefined, returns false.
|
|
|
|
* */
|
2021-04-13 09:59:16 +00:00
|
|
|
export function isLimitReached(
|
2023-01-18 09:23:24 +00:00
|
|
|
limits: RefreshLimitsQuery["shop"]["limits"] | undefined,
|
2022-06-21 09:36:55 +00:00
|
|
|
key: keyof LimitInfoFragment,
|
2021-04-13 09:59:16 +00:00
|
|
|
): boolean {
|
|
|
|
if (!hasLimits(limits, key)) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2023-01-18 09:23:24 +00:00
|
|
|
const currentUsage = limits?.currentUsage[key];
|
|
|
|
const allowedUsage = limits?.allowedUsage[key];
|
|
|
|
|
|
|
|
if (!currentUsage || !allowedUsage) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
return currentUsage >= allowedUsage!;
|
2021-04-13 09:59:16 +00:00
|
|
|
}
|