Skip to content

Commit b1a3cfe

Browse files
author
FalkWolsky
committed
Enterprise Edition API Calls cleanup 2
1 parent 9947227 commit b1a3cfe

File tree

6 files changed

+36
-28
lines changed

6 files changed

+36
-28
lines changed

client/packages/lowcoder/src/pages/ApplicationV2/index.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,11 @@ import { trans } from "../../i18n";
5050
import { foldersSelector } from "../../redux/selectors/folderSelector";
5151
import Setting from "pages/setting";
5252
import { Support } from "pages/support";
53-
import { isEE } from "util/envUtils";
5453
import { getSubscriptions } from 'redux/selectors/subscriptionSelectors';
5554
import { SubscriptionProductsEnum } from '@lowcoder-ee/constants/subscriptionConstants';
56-
import { isEEEnvironment } from "util/envUtils";
5755
import { EnterpriseProvider } from "@lowcoder-ee/util/context/EnterpriseContext";
56+
import { selectIsLicenseActive } from "redux/selectors/enterpriseSelectors";
57+
5858

5959
// adding App Editor, so we can show Apps inside the Admin Area
6060
import AppEditor from "../editor/AppEditor";
@@ -102,6 +102,8 @@ export default function ApplicationHome() {
102102

103103
const isOrgAdmin = org?.createdBy == user.id ? true : false;
104104

105+
const isLicenseActive = useSelector(selectIsLicenseActive);
106+
105107
useEffect(() => {
106108
if (user.currentOrgId) {
107109
dispatch(fetchDeploymentIdAction());
@@ -225,7 +227,7 @@ export default function ApplicationHome() {
225227
},
226228
],
227229
},
228-
isEE() ? {
230+
isLicenseActive ? {
229231
items: [
230232
{
231233
text: <TabLabel>{trans("settings.AppUsage")}</TabLabel>,

client/packages/lowcoder/src/pages/setting/settingHome.tsx

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import { AdvancedSetting } from "./advanced/AdvancedSetting";
55
import { currentOrgAdmin } from "util/permissionUtils";
66
import { trans } from "i18n";
77
import AuditSetting from "@lowcoder-ee/pages/setting/audit";
8-
import { isEE, isEnterpriseMode, isSelfDomain } from "util/envUtils";
98
import { TwoColumnSettingPageContent } from "./styled";
109
import SubSideBar from "components/layout/SubSideBar";
1110
import {
@@ -34,6 +33,8 @@ import FreeLimitTag from "pages/common/freeLimitTag";
3433
import { Helmet } from "react-helmet";
3534
import { Card } from "antd";
3635
import { Subscription } from "./subscriptions";
36+
import { selectIsLicenseActive } from "redux/selectors/enterpriseSelectors";
37+
3738

3839
enum SettingPageEnum {
3940
UserGroups = "permission",
@@ -53,6 +54,8 @@ export function SettingHome() {
5354
const config = useSelector(selectSystemConfig);
5455
const selectKey = useParams<{ setting: string }>().setting || SettingPageEnum.UserGroups;
5556

57+
const isLicenseActive = useSelector(selectIsLicenseActive);
58+
5659
const items = [
5760
{
5861
key: SettingPageEnum.Organization,
@@ -88,52 +91,52 @@ export function SettingHome() {
8891
label: (
8992
<span>
9093
<span className="text">{trans("settings.environments")}</span>
91-
{(!isEE() && (
94+
{(!isLicenseActive && (
9295
<FreeLimitTag text={trans("settings.premium")} />
9396
))}
9497
</span>
9598
),
9699
icon: <EnvironmentsIcon width={"20px"}/>,
97-
disabled: !isEE() || !currentOrgAdmin(user),
100+
disabled: !isLicenseActive || !currentOrgAdmin(user),
98101
},
99102
{
100103
key: SettingPageEnum.AppUsage,
101104
label: (
102105
<span>
103106
<span className="text">{trans("settings.appUsage")}</span>
104-
{(!isEE() && (
107+
{(!isLicenseActive && (
105108
<FreeLimitTag text={trans("settings.premium")} />
106109
))}
107110
</span>
108111
),
109112
icon: <UsageStatisticsIcon width={"20px"}/>,
110-
disabled: !isEE() || !currentOrgAdmin(user),
113+
disabled: !isLicenseActive || !currentOrgAdmin(user),
111114
},
112115
{
113116
key: SettingPageEnum.Audit,
114117
label: (
115118
<span>
116119
<span className="text">{trans("settings.audit")}</span>
117-
{(!isEE() && (
120+
{(!isLicenseActive && (
118121
<FreeLimitTag text={trans("settings.premium")} />
119122
))}
120123
</span>
121124
),
122125
icon: <AutitLogsIcon width={"20px"}/>,
123-
disabled: !isEE() || !currentOrgAdmin(user),
126+
disabled: !isLicenseActive || !currentOrgAdmin(user),
124127
},
125128
{
126129
key: SettingPageEnum.Branding,
127130
label: (
128131
<span>
129132
<span className="text">{trans("settings.branding")}</span>
130-
{(!isEE() && (
133+
{(!isLicenseActive && (
131134
<FreeLimitTag text={trans("settings.premium")} />
132135
))}
133136
</span>
134137
),
135138
icon: <BrandingIcon width={"20px"}/>,
136-
disabled: !isEE() || !currentOrgAdmin(user),
139+
disabled: !isLicenseActive || !currentOrgAdmin(user),
137140
},
138141
{
139142
key: SettingPageEnum.Subscription,

client/packages/lowcoder/src/redux/reduxActions/enterpriseActions.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,17 @@ export const fetchEnterpriseLicense = () => ({
44
type: ReduxActionTypes.FETCH_ENTERPRISE_LICENSE,
55
});
66

7-
export const setEnterpriseLicense = (licenseData: any) => ({
7+
interface EnterpriseLicenseResponse {
8+
eeActive: boolean;
9+
remainingAPICalls: number;
10+
eeLicenses: Array<{
11+
uuid: string;
12+
issuedTo: string;
13+
apiCallsLimit: number;
14+
}>;
15+
}
16+
17+
export const setEnterpriseLicense = (licenseData: EnterpriseLicenseResponse) => ({
818
type: ReduxActionTypes.SET_ENTERPRISE_LICENSE,
919
payload: licenseData,
1020
});

client/packages/lowcoder/src/redux/selectors/enterpriseSelectors.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,8 @@ export const selectRemainingAPICalls = (state: AppState) =>
88

99
export const selectEnterpriseLicenses = (state: AppState) =>
1010
state.ui.enterprise?.eeLicenses ?? [];
11+
12+
export const selectIsLicenseActive = (state: AppState) => {
13+
const enterprise = state.ui.enterprise;
14+
return enterprise?.eeActive && enterprise?.remainingAPICalls > 0;
15+
};

client/packages/lowcoder/src/util/context/EnterpriseContext.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import React, { createContext, useContext, useState, useEffect } from 'react';
22
import { fetchEnterpriseLicense } from 'redux/reduxActions/enterpriseActions';
33
import { selectEnterpriseEditionStatus } from '@lowcoder-ee/redux/selectors/enterpriseSelectors';
44
import { useDispatch, useSelector } from 'react-redux';
5-
import { setEEActiveState, isEEEnvironment } from "util/envUtils";
5+
import { isEEEnvironment } from "util/envUtils";
66

77
interface EnterpriseContextValue {
88
isEnterpriseActive: boolean;
@@ -25,15 +25,15 @@ export const EnterpriseProvider: React.FC<ProviderProps> = ({ children }) => {
2525
dispatch(fetchEnterpriseLicense());
2626
} else {
2727
// Set the state to false for non-EE environments
28-
setEEActiveState(false);
28+
// setEEActiveState(false);
2929
setIsEnterpriseActive(false);
3030
}
3131
}, [dispatch]);
3232

3333
useEffect(() => {
3434
if (isEEEnvironment()) {
3535
// Update the global EE state based on Redux
36-
setEEActiveState(isEnterpriseActiveRedux);
36+
// setEEActiveState(isEnterpriseActiveRedux);
3737
setIsEnterpriseActive(isEnterpriseActiveRedux);
3838
}
3939
}, [isEnterpriseActiveRedux]);

client/packages/lowcoder/src/util/envUtils.ts

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,6 @@ export function developEnv(): boolean {
1010
return REACT_APP_ENV === "development" || localEnv();
1111
}
1212

13-
// Create a global variable to hold the EE state
14-
let eeActiveState = false;
15-
16-
// Function to dynamically update the EE state
17-
export function setEEActiveState(isActive: boolean) {
18-
eeActiveState = isActive;
19-
}
20-
21-
export function isEE(): boolean {
22-
return eeActiveState;
23-
}
24-
2513
// Is hosted as Enterprise Edition?
2614
export function isEEEnvironment(): boolean {
2715
return REACT_APP_EDITION === "enterprise";

0 commit comments

Comments
 (0)