Regression: Fix hasLicense failing due call stack limit reasons (#28304)
parent
b236a5cd4b
commit
fb1ab86137
@ -1,22 +1,15 @@ |
||||
import { fetchFeatures } from '../../../client/lib/fetchFeatures'; |
||||
import { queryClient } from '../../../../client/lib/queryClient'; |
||||
|
||||
const allModules = queryClient |
||||
.fetchQuery({ |
||||
queryKey: ['ee.features'], |
||||
queryFn: fetchFeatures, |
||||
}) |
||||
.then((features) => new Set<string>(features)) |
||||
.catch((e) => { |
||||
console.error('Error getting modules', e); |
||||
return Promise.reject(e); |
||||
}); |
||||
|
||||
export async function hasLicense(feature: string): Promise<boolean> { |
||||
try { |
||||
const features = await allModules; |
||||
return features.has(feature); |
||||
const features = await queryClient.fetchQuery({ |
||||
queryKey: ['ee.features'], |
||||
queryFn: fetchFeatures, |
||||
}); |
||||
return features.includes(feature); |
||||
} catch (e) { |
||||
console.error('Error getting modules', e); |
||||
return false; |
||||
} |
||||
} |
||||
|
||||
@ -1,19 +1,15 @@ |
||||
import { useState, useEffect } from 'react'; |
||||
import { useMethod, useUserId } from '@rocket.chat/ui-contexts'; |
||||
import { useQuery } from '@tanstack/react-query'; |
||||
|
||||
import { hasLicense } from '../../app/license/client'; |
||||
import type { BundleFeature } from '../../app/license/server/bundles'; |
||||
|
||||
export const useHasLicenseModule = (licenseName: BundleFeature): 'loading' | boolean => { |
||||
const [license, setLicense] = useState<'loading' | boolean>('loading'); |
||||
const method = useMethod('license:getModules'); |
||||
const uid = useUserId(); |
||||
|
||||
useEffect(() => { |
||||
hasLicense(licenseName).then((enabled) => { |
||||
if (enabled) { |
||||
return setLicense(true); |
||||
} |
||||
setLicense(false); |
||||
}); |
||||
}, [licenseName]); |
||||
const features = useQuery(['ee.features'], method, { |
||||
enabled: !!uid, |
||||
}); |
||||
|
||||
return license; |
||||
return features.data?.includes(licenseName) ?? 'loading'; |
||||
}; |
||||
|
||||
Loading…
Reference in new issue