The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/apps/meteor/client/hooks/useFeaturePreviewEnableQuer...

31 lines
1023 B

import type { FeaturePreviewProps } from '@rocket.chat/ui-client';
import { useMemo } from 'react';
const handleFeaturePreviewEnableQuery = (item: FeaturePreviewProps, _: any, features: FeaturePreviewProps[]) => {
if (item.enableQuery) {
const expected = item.enableQuery.value;
const received = features.find((el) => el.name === item.enableQuery?.name)?.value;
if (expected !== received) {
item.disabled = true;
item.value = false;
} else {
item.disabled = false;
}
}
return item;
};
const groupFeaturePreview = (features: FeaturePreviewProps[]) =>
Object.entries(
features.reduce(
(result, currentValue) => {
(result[currentValue.group] = result[currentValue.group] || []).push(currentValue);
return result;
},
{} as Record<FeaturePreviewProps['group'], FeaturePreviewProps[]>,
),
);
export const useFeaturePreviewEnableQuery = (features: FeaturePreviewProps[]) => {
return useMemo(() => groupFeaturePreview(features.map(handleFeaturePreviewEnableQuery)), [features]);
};