0
Fork 0
mirror of https://github.com/logto-io/logto.git synced 2024-12-16 20:26:19 -05:00

fix(console): fix cloud CI failed issue (#6710)

chore: remove useNewSubscriptionData manual updateTenant
This commit is contained in:
Darcy Ye 2024-10-23 11:53:56 +08:00 committed by GitHub
parent 83e942a098
commit b906db730c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 41 additions and 24 deletions

View file

@ -1,4 +1,4 @@
import { cond, condString, pick } from '@silverhand/essentials';
import { cond, pick } from '@silverhand/essentials';
import { useContext, useEffect, useMemo } from 'react';
import useSWR from 'swr';
@ -21,25 +21,24 @@ import { type NewSubscriptionContext } from './types';
const useNewSubscriptionData: () => NewSubscriptionContext & { isLoading: boolean } = () => {
const cloudApi = useCloudApi();
const { currentTenant, updateTenant } = useContext(TenantsContext);
const { currentTenant, currentTenantId, updateTenant } = useContext(TenantsContext);
const { isLoading: isLogtoSkusLoading, data: fetchedLogtoSkus } = useLogtoSkus();
const tenantId = condString(currentTenant?.id);
const {
data: currentSubscription,
isLoading: isSubscriptionLoading,
mutate: mutateSubscription,
} = useSubscription(tenantId);
} = useSubscription(currentTenantId);
const {
data: subscriptionUsageData,
isLoading: isSubscriptionUsageDataLoading,
mutate: mutateSubscriptionQuotaAndUsages,
} = useSWR<NewSubscriptionUsageResponse, Error>(
isCloud && tenantId && `/api/tenants/${tenantId}/subscription-usage`,
isCloud && currentTenantId && `/api/tenants/${currentTenantId}/subscription-usage`,
async () =>
cloudApi.get('/api/tenants/:tenantId/subscription-usage', {
params: { tenantId },
params: { tenantId: currentTenantId },
})
);
@ -52,11 +51,11 @@ const useNewSubscriptionData: () => NewSubscriptionContext & { isLoading: boolea
useEffect(() => {
if (subscriptionUsageData?.quota) {
updateTenant(tenantId, {
updateTenant(currentTenantId, {
quota: pick(subscriptionUsageData.quota, 'mauLimit', 'tokenLimit'),
});
}
}, [tenantId, subscriptionUsageData?.quota, updateTenant]);
}, [currentTenantId, subscriptionUsageData?.quota, updateTenant]);
return useMemo(
() => ({

View file

@ -118,31 +118,49 @@ function TenantsProvider({ children }: Props) {
[currentTenantId, tenants]
);
const resetTenants = useCallback((tenants: TenantResponse[]) => {
setTenants(tenants);
setIsInitComplete(true);
}, []);
const prependTenant = useCallback((tenant: TenantResponse) => {
setTenants((tenants) => [tenant, ...tenants]);
}, []);
const removeTenant = useCallback((tenantId: string) => {
setTenants((tenants) => tenants.filter((tenant) => tenant.id !== tenantId));
}, []);
const updateTenant = useCallback((tenantId: string, data: Partial<TenantResponse>) => {
setTenants((tenants) =>
tenants.map((tenant) => (tenant.id === tenantId ? { ...tenant, ...data } : tenant))
);
}, []);
const memorizedContext = useMemo(
() => ({
tenants,
resetTenants: (tenants: TenantResponse[]) => {
setTenants(tenants);
setIsInitComplete(true);
},
prependTenant: (tenant: TenantResponse) => {
setTenants((tenants) => [tenant, ...tenants]);
},
removeTenant: (tenantId: string) => {
setTenants((tenants) => tenants.filter((tenant) => tenant.id !== tenantId));
},
updateTenant: (tenantId: string, data: Partial<TenantResponse>) => {
setTenants((tenants) =>
tenants.map((tenant) => (tenant.id === tenantId ? { ...tenant, ...data } : tenant))
);
},
resetTenants,
prependTenant,
removeTenant,
updateTenant,
isInitComplete,
currentTenantId,
isDevTenant: currentTenant?.tag === TenantTag.Development,
currentTenant,
navigateTenant,
}),
[currentTenant, currentTenantId, isInitComplete, navigateTenant, tenants]
[
currentTenant,
currentTenantId,
isInitComplete,
navigateTenant,
tenants,
resetTenants,
prependTenant,
removeTenant,
updateTenant,
]
);
return <TenantsContext.Provider value={memorizedContext}>{children}</TenantsContext.Provider>;