Skip to content

Commit 3bee7f1

Browse files
remove polling for deploymentId in fetching user subscription
1 parent f918ac5 commit 3bee7f1

File tree

7 files changed

+31
-27
lines changed

7 files changed

+31
-27
lines changed

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -307,8 +307,6 @@ export function HomeLayout(props: HomeLayoutProps) {
307307

308308
const { breadcrumb = [], elements = [], localMarketplaceApps = [], globalMarketplaceApps = [], mode } = props;
309309

310-
console.log("HomeLayout props: ", props);
311-
312310
const categoryOptions = [
313311
{ label: <FilterMenuItem>{trans("home.allCategories")}</FilterMenuItem>, value: 'All' },
314312
...Object.entries(ApplicationCategoriesEnum).map(([key, value]) => ({

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

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ import {
3434
EnterpriseIcon,
3535
UserIcon,
3636
} from "lowcoder-design";
37-
import React, { useCallback, useEffect, useState } from "react";
37+
import React, { useCallback, useEffect, useState, useMemo } from "react";
3838
import { fetchAllApplications, fetchHomeData } from "redux/reduxActions/applicationActions";
3939
import { fetchSubscriptionsAction } from "redux/reduxActions/subscriptionActions";
4040
import { getHomeOrg, normalAppListSelector } from "redux/selectors/applicationSelector";
@@ -66,13 +66,14 @@ import { Support } from "pages/support";
6666
// import { messageInstance } from "lowcoder-design/src/components/GlobalInstances";
6767
import { isEE } from "util/envUtils";
6868
import { getSubscriptions } from 'redux/selectors/subscriptionSelectors';
69-
import { SubscriptionProducts } from '@lowcoder-ee/api/subscriptionApi';
69+
import { SubscriptionProductsEnum } from '@lowcoder-ee/constants/subscriptionConstants';
7070
import { ReduxActionTypes } from '@lowcoder-ee/constants/reduxActionConstants';
7171

7272
// adding App Editor, so we can show Apps inside the Admin Area
7373
import AppEditor from "../editor/AppEditor";
7474
import { set } from "lodash";
7575
import { fetchDeploymentIdAction } from "@lowcoder-ee/redux/reduxActions/configActions";
76+
import { getDeploymentId } from "@lowcoder-ee/redux/selectors/configSelectors";
7677

7778
const TabLabel = styled.div`
7879
font-weight: 500;
@@ -166,18 +167,28 @@ export default function ApplicationHome() {
166167
const orgHomeId = "root";
167168
const isSelfHost = window.location.host !== 'app.lowcoder.cloud';
168169
const subscriptions = useSelector(getSubscriptions);
170+
const deploymentId = useSelector(getDeploymentId);
169171

170172
const isOrgAdmin = org?.createdBy == user.id ? true : false;
171173

172174
useEffect(() => {
173175
if (user.currentOrgId) {
174-
dispatch(fetchSubscriptionsAction());
175176
dispatch(fetchDeploymentIdAction());
176177
}
177178
dispatch(fetchHomeData({}));
178179
}, [user.currentOrgId]);
179180

180-
const supportSubscription = subscriptions.some(sub => sub.product === SubscriptionProducts.SUPPORT && sub.status === 'active');
181+
useEffect(() => {
182+
if(Boolean(deploymentId)) {
183+
dispatch(fetchSubscriptionsAction())
184+
}
185+
}, [deploymentId]);
186+
187+
const supportSubscription = useMemo(() => {
188+
return subscriptions.some(
189+
sub => sub.product === SubscriptionProductsEnum.SUPPORT && sub.status === 'active'
190+
);
191+
}, [subscriptions])
181192

182193
useEffect(() => {
183194
if (!org) {

client/packages/lowcoder/src/pages/setting/subscriptions/subscriptionInfo.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import { CheckCircleOutlined } from '@ant-design/icons';
1212
import { Level1SettingPageContent } from "../styled";
1313
import { TacoMarkDown } from "lowcoder-design";
1414
import ProductDescriptions, {Translations} from "./ProductDescriptions";
15+
import { SubscriptionProductsEnum } from "@lowcoder-ee/constants/subscriptionConstants";
1516

1617
const { Meta } = Card;
1718

@@ -66,10 +67,10 @@ const useMarkdown = (productId: string | null, userLanguage: string) => {
6667
let descriptionContent : Translations | false;
6768

6869
switch (productId) {
69-
case "QW8L3WPMiNjQjI":
70+
case SubscriptionProductsEnum.SUPPORT:
7071
descriptionContent = ProductDescriptions["SupportProduct"];
7172
break;
72-
case "QW8MpIBHxieKXd":
73+
case SubscriptionProductsEnum.MEDIAPACKAGE:
7374
descriptionContent = ProductDescriptions["MediaPackageProduct"];
7475
break;
7576
default:

client/packages/lowcoder/src/redux/reducers/uiReducers/subscriptionReducer.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ const initialState: SubscriptionsReduxState = {
1212
fetchingSubscriptions: false,
1313
fetchSubscriptionsFinished: false,
1414
},
15-
error: "",
15+
error: undefined,
1616
};
1717

1818
const subscriptionReducer = createReducer(initialState, {
@@ -22,6 +22,7 @@ const subscriptionReducer = createReducer(initialState, {
2222
...state.loadingStates,
2323
fetchingSubscriptions: true,
2424
},
25+
error: undefined,
2526
}),
2627

2728
[ReduxActionTypes.FETCH_SUBSCRIPTIONS_SUCCESS]: (
@@ -35,6 +36,7 @@ const subscriptionReducer = createReducer(initialState, {
3536
fetchingSubscriptions: false,
3637
fetchSubscriptionsFinished: true,
3738
},
39+
error: undefined,
3840
}),
3941

4042
[ReduxActionErrorTypes.FETCH_SUBSCRIPTIONS_ERROR]: (
@@ -57,7 +59,7 @@ export interface SubscriptionsReduxState {
5759
fetchingSubscriptions: boolean;
5860
fetchSubscriptionsFinished: boolean;
5961
};
60-
error: string;
62+
error?: string;
6163
}
6264

6365
export default subscriptionReducer;

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ReduxActionTypes } from "constants/reduxActionConstants";
1+
import { ReduxActionErrorTypes, ReduxActionTypes } from "constants/reduxActionConstants";
22
import { Subscription } from 'api/subscriptionApi';
33

44
// Action Creators
@@ -12,6 +12,6 @@ export const fetchSubscriptionsSuccess = (subscriptions: Subscription[]) => ({
1212
});
1313

1414
export const fetchSubscriptionsError = (error: string) => ({
15-
type: ReduxActionTypes.FETCH_SUBSCRIPTIONS_FAILURE,
15+
type: ReduxActionErrorTypes.FETCH_SUBSCRIPTIONS_ERROR,
1616
payload: { error },
1717
});

client/packages/lowcoder/src/redux/sagas/subscriptionSagas.ts

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,24 +9,12 @@ import { CurrentUser, User } from '@lowcoder-ee/constants/userConstants';
99
import { ReduxActionTypes } from '@lowcoder-ee/constants/reduxActionConstants';
1010

1111
function* fetchSubscriptionsSaga(action: ReturnType<typeof fetchSubscriptionsAction>) {
12-
1312
try {
14-
15-
// wait for deploymentId to be available
16-
yield take(ReduxActionTypes.FETCH_DEPLOYMENT_ID_SUCCESS);
17-
1813
const user: User = yield select(getUser);
1914
const currentUser: CurrentUser = yield select(getCurrentUser);
2015
const orgID = user.currentOrgId;
2116
const domain = `${window.location.protocol}//${window.location.hostname}${window.location.port ? `:${window.location.port}` : ''}`;
22-
23-
let hostIdenticator : string = yield select(getDeploymentId);
24-
25-
// Poll until deploymentId is available
26-
while (!hostIdenticator) {
27-
yield delay(100); // wait for 100ms
28-
hostIdenticator = yield select(getDeploymentId);
29-
}
17+
const hostIdenticator: string = yield select(getDeploymentId);
3018

3119
const subscriptionSearchCustomer: LowcoderSearchCustomer = {
3220
hostname: domain,

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ export const checkSubscriptionsLoading = (state: AppState) : boolean => {
99
return state.ui.subscriptions.loadingStates.fetchingSubscriptions;
1010
};
1111

12-
export const checkSubscriptionsError = (state: AppState) : string | null => {
12+
export const getFetchSubscriptionsFinished = (state: AppState) : boolean => {
13+
return state.ui.subscriptions.loadingStates.fetchSubscriptionsFinished;
14+
};
15+
16+
export const getSubscriptionsError = (state: AppState) : string | undefined => {
1317
return state.ui.subscriptions.error;
14-
};
18+
};

0 commit comments

Comments
 (0)