Skip to content

Commit fec51dd

Browse files
count subscription users from groups list
1 parent 87b235b commit fec51dd

File tree

3 files changed

+10
-33
lines changed

3 files changed

+10
-33
lines changed

client/packages/lowcoder/src/api/subscriptionApi.ts

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import axios, { AxiosInstance, AxiosRequestConfig, CancelToken } from "axios";
33
import { useDispatch, useSelector } from "react-redux";
44
import { useEffect, useState} from "react";
55
import { calculateFlowCode } from "./apiUtils";
6-
import { fetchOrgUsersAction } from "redux/reduxActions/orgActions";
6+
import { fetchGroupsAction, fetchOrgUsersAction } from "redux/reduxActions/orgActions";
77
import { getOrgUsers } from "redux/selectors/orgSelectors";
88
import { AppState } from "@lowcoder-ee/redux/reducers";
99
import type {
@@ -289,28 +289,4 @@ export const getCustomerPortalSession = async (customerId: string) => {
289289
}
290290
};
291291

292-
// Hooks
293-
294-
export const useOrgUserCount = (orgId: string) => {
295-
const dispatch = useDispatch();
296-
const orgUsers = useSelector((state: AppState) => getOrgUsers(state)); // Use selector to get orgUsers from state
297-
const [userCount, setUserCount] = useState<number>(0);
298-
299-
useEffect(() => {
300-
// Dispatch action to fetch organization users
301-
if (orgId) {
302-
dispatch(fetchOrgUsersAction(orgId));
303-
}
304-
}, [dispatch, orgId]);
305-
306-
useEffect(() => {
307-
// Update user count when orgUsers state changes
308-
if (orgUsers && orgUsers.length > 0) {
309-
setUserCount(orgUsers.length);
310-
}
311-
}, [orgUsers]);
312-
313-
return userCount;
314-
};
315-
316292
export default SubscriptionApi;

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
import { createCheckoutLink, createCustomer, getProducts, searchCustomer, useOrgUserCount } from "@lowcoder-ee/api/subscriptionApi";
1+
import { createCheckoutLink, createCustomer, getProducts, searchCustomer } from "@lowcoder-ee/api/subscriptionApi";
22
import { StripeCustomer, SubscriptionProduct, InitSubscriptionProducts, LowcoderSearchCustomer, LowcoderNewCustomer, Subscription } from "@lowcoder-ee/constants/subscriptionConstants";
33
import { getDeploymentId } from "@lowcoder-ee/redux/selectors/configSelectors";
44
import { getFetchSubscriptionsFinished, getSubscriptions, getSubscriptionsError } from "@lowcoder-ee/redux/selectors/subscriptionSelectors";
55
import { getCurrentUser, getUser } from "@lowcoder-ee/redux/selectors/usersSelectors";
66
import { createContext, ReactNode, useContext, useEffect, useState } from "react";
77
import { useSelector } from "react-redux";
8+
import { useOrgUserCount } from "../hooks";
89

910
export interface SubscriptionContextType {
1011
products: SubscriptionProduct[];

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ import { ThemeDetail } from "@lowcoder-ee/api/commonSettingApi";
2727
import { uniq } from "lodash";
2828
import { constantColors } from "components/colorSelect/colorUtils";
2929
import { AppState } from "@lowcoder-ee/redux/reducers";
30-
import { getOrgUsers } from "@lowcoder-ee/redux/selectors/orgSelectors";
31-
import { fetchOrgUsersAction } from "@lowcoder-ee/redux/reduxActions/orgActions";
30+
import { getOrgGroups, getOrgUsers } from "@lowcoder-ee/redux/selectors/orgSelectors";
31+
import { fetchGroupsAction, fetchOrgUsersAction } from "@lowcoder-ee/redux/reduxActions/orgActions";
3232

3333
export const ForceViewModeContext = React.createContext<boolean>(false);
3434

@@ -263,22 +263,22 @@ export function useThemeColors(allowGradient?: boolean) {
263263

264264
export const useOrgUserCount = (orgId: string) => {
265265
const dispatch = useDispatch();
266-
const orgUsers = useSelector((state: AppState) => getOrgUsers(state)); // Use selector to get orgUsers from state
266+
const orgGroups = useSelector((state: AppState) => getOrgGroups(state)); // Use selector to get orgUsers from state
267267
const [userCount, setUserCount] = useState<number>(0);
268268

269269
useEffect(() => {
270270
// Dispatch action to fetch organization users
271271
if (orgId) {
272-
dispatch(fetchOrgUsersAction(orgId));
272+
dispatch(fetchGroupsAction(orgId));
273273
}
274274
}, [dispatch, orgId]);
275275

276276
useEffect(() => {
277277
// Update user count when orgUsers state changes
278-
if (orgUsers && orgUsers.length > 0) {
279-
setUserCount(orgUsers.length);
278+
if (orgGroups && orgGroups.length > 0) {
279+
setUserCount(orgGroups.length);
280280
}
281-
}, [orgUsers]);
281+
}, [orgGroups]);
282282

283283
return userCount;
284284
};

0 commit comments

Comments
 (0)