Chore: Update review-workflow chargebee entitlements

This commit is contained in:
Gustav Hansen 2023-07-19 16:27:04 +02:00
parent 6328ea6d39
commit 40afddb55c
5 changed files with 68 additions and 33 deletions

View File

@ -13,6 +13,10 @@ import { useMutation } from 'react-query';
import { Information } from '../../../../../../admin/src/content-manager/pages/EditView/Information';
import { useLicenseLimits } from '../../../../hooks/useLicenseLimits';
import * as LimitsModal from '../../../../pages/SettingsPage/pages/ReviewWorkflows/components/LimitsModal';
import {
CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME,
CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME,
} from '../../../../pages/SettingsPage/pages/ReviewWorkflows/constants';
import { useReviewWorkflows } from '../../../../pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflows';
import { getStageColorByHex } from '../../../../pages/SettingsPage/pages/ReviewWorkflows/utils/colors';
@ -88,7 +92,10 @@ export function InformationBoxEE() {
*
*/
if (limits?.workflows && parseInt(limits.workflows, 10) > meta.workflowCount) {
if (
limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&
parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10) > meta.workflowCount
) {
setShowLimitModal('workflow');
/**
@ -101,8 +108,9 @@ export function InformationBoxEE() {
*
*/
} else if (
limits?.stagesPerWorkflow &&
parseInt(limits.stagesPerWorkflow, 10) > workflow.stages.length
limits?.[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME] &&
parseInt(limits[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME], 10) >
workflow.stages.length
) {
setShowLimitModal('stage');
} else {

View File

@ -32,3 +32,7 @@ export const STAGE_COLOR_DEFAULT = lightTheme.colors.primary600;
export const DRAG_DROP_TYPES = {
STAGE: 'stage',
};
export const CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME = 'review-workflows-number-of-workflows';
export const CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME =
'review-workflows--stages-per-workflow';

View File

@ -24,7 +24,11 @@ import * as Layout from '../../components/Layout';
import * as LimitsModal from '../../components/LimitsModal';
import { Stages } from '../../components/Stages';
import { WorkflowAttributes } from '../../components/WorkflowAttributes';
import { REDUX_NAMESPACE } from '../../constants';
import {
CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME,
CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME,
REDUX_NAMESPACE,
} from '../../constants';
import { useReviewWorkflows } from '../../hooks/useReviewWorkflows';
import { reducer, initialState } from '../../reducer';
import { validateWorkflow } from '../../utils/validateWorkflow';
@ -127,7 +131,10 @@ export function ReviewWorkflowsCreateView() {
* update, because it would throw an API error.
*/
if (limits?.workflows && meta?.workflowCount >= parseInt(limits.workflows, 10)) {
if (
limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&
meta?.workflowCount >= parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)
) {
setShowLimitModal('workflow');
/**
@ -136,8 +143,9 @@ export function ReviewWorkflowsCreateView() {
* update, because it would throw an API error.
*/
} else if (
limits?.stagesPerWorkflow &&
currentWorkflow.stages.length >= parseInt(limits.stagesPerWorkflow, 10)
limits?.[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME] &&
currentWorkflow.stages.length >=
parseInt(limits[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME], 10)
) {
setShowLimitModal('stage');
} else {
@ -170,11 +178,15 @@ export function ReviewWorkflowsCreateView() {
React.useEffect(() => {
if (!isWorkflowLoading && !isLicenseLoading) {
if (limits.workflows && meta?.workflowsTotal >= parseInt(limits.workflows, 10)) {
if (
limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&
meta?.workflowsTotal >= parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)
) {
setShowLimitModal('workflow');
} else if (
limits.stagesPerWorkflow &&
currentWorkflow.stages.length >= parseInt(limits.stagesPerWorkflow, 10)
limits?.[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME] &&
currentWorkflow.stages.length >=
parseInt(limits[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME], 10)
) {
setShowLimitModal('stage');
}
@ -182,8 +194,7 @@ export function ReviewWorkflowsCreateView() {
}, [
isLicenseLoading,
isWorkflowLoading,
limits.stagesPerWorkflow,
limits?.workflows,
limits,
meta?.workflowsTotal,
currentWorkflow.stages.length,
]);

View File

@ -25,7 +25,11 @@ import * as Layout from '../../components/Layout';
import * as LimitsModal from '../../components/LimitsModal';
import { Stages } from '../../components/Stages';
import { WorkflowAttributes } from '../../components/WorkflowAttributes';
import { REDUX_NAMESPACE } from '../../constants';
import {
CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME,
CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME,
REDUX_NAMESPACE,
} from '../../constants';
import { useReviewWorkflows } from '../../hooks/useReviewWorkflows';
import { reducer, initialState } from '../../reducer';
import { validateWorkflow } from '../../utils/validateWorkflow';
@ -147,7 +151,10 @@ export function ReviewWorkflowsEditView() {
async onSubmit() {
if (currentWorkflowHasDeletedServerStages) {
setIsConfirmDeleteDialogOpen(true);
} else if (limits?.workflows && meta?.workflowCount > parseInt(limits.workflows, 10)) {
} else if (
limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&
meta?.workflowCount > parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)
) {
/**
* If the current license has a limit, check if the total count of workflows
* exceeds that limit and display the limits modal instead of sending the
@ -161,8 +168,9 @@ export function ReviewWorkflowsEditView() {
* update, because it would throw an API error.
*/
} else if (
limits?.stagesPerWorkflow &&
currentWorkflow.stages.length > parseInt(limits.stagesPerWorkflow, 10)
limits?.[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME] &&
currentWorkflow.stages.length >
parseInt(limits[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME], 10)
) {
setShowLimitModal('stage');
} else {
@ -197,11 +205,15 @@ export function ReviewWorkflowsEditView() {
React.useEffect(() => {
if (!isWorkflowLoading && !isLicenseLoading) {
if (limits?.workflows && meta?.workflowCount > parseInt(limits.workflows, 10)) {
if (
limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&
meta?.workflowCount > parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)
) {
setShowLimitModal('workflow');
} else if (
limits?.stagesPerWorkflow &&
currentWorkflow.stages.length > parseInt(limits.stagesPerWorkflow, 10)
limits?.[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME] &&
currentWorkflow.stages.length >
parseInt(limits[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME], 10)
) {
setShowLimitModal('stage');
}
@ -210,8 +222,7 @@ export function ReviewWorkflowsEditView() {
currentWorkflow.stages.length,
isLicenseLoading,
isWorkflowLoading,
limits.stagesPerWorkflow,
limits.workflows,
limits,
meta?.workflowCount,
meta.workflowsTotal,
]);

View File

@ -38,6 +38,7 @@ import { selectAdminPermissions } from '../../../../../../../../admin/src/pages/
import { useLicenseLimits } from '../../../../../../hooks';
import * as Layout from '../../components/Layout';
import * as LimitsModal from '../../components/LimitsModal';
import { CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME } from '../../constants';
import { useReviewWorkflows } from '../../hooks/useReviewWorkflows';
const ActionLink = styled(Link)`
@ -155,18 +156,14 @@ export function ReviewWorkflowsListView() {
React.useEffect(() => {
if (!isLoading && !isLicenseLoading) {
if (limits?.workflows && meta?.workflowCount >= parseInt(limits.workflows, 10)) {
if (
limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&
meta?.workflowCount >= parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)
) {
setShowLimitModal(true);
}
}
}, [
isLicenseLoading,
isLoading,
limits.stagesPerWorkflow,
limits.workflows,
meta?.workflowCount,
meta.workflowsTotal,
]);
}, [isLicenseLoading, isLoading, limits, meta?.workflowCount, meta.workflowsTotal]);
return (
<>
@ -188,7 +185,10 @@ export function ReviewWorkflowsListView() {
* current hard-limit of 200 they will see an error thrown by the API.
*/
if (limits?.workflows && meta?.workflowCount >= parseInt(limits.workflows, 10)) {
if (
limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&
meta?.workflowCount >= parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)
) {
event.preventDefault();
setShowLimitModal(true);
} else {
@ -240,8 +240,9 @@ export function ReviewWorkflowsListView() {
*/
if (
limits?.workflows &&
meta?.workflowCount >= parseInt(limits.workflows, 10)
limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&
meta?.workflowCount >=
parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)
) {
setShowLimitModal(true);
} else {