Hide workflows + remove feature flag from entities (#9768)
From now on workflow entities and views will be seed for every new workspace. What will prevent user to see those is the feature flag used in frontend. It will prevent workflow objects to be stored in the recoil state. Without feature flag, workflows will: - remain invisible in metadata - not be accessible through views or show page - remain invisible on side menu
This commit is contained in:
@ -2,10 +2,16 @@ import { FIND_MANY_OBJECT_METADATA_ITEMS } from '@/object-metadata/graphql/queri
|
||||
import { useApolloMetadataClient } from '@/object-metadata/hooks/useApolloMetadataClient';
|
||||
import { isAppWaitingForFreshObjectMetadataState } from '@/object-metadata/states/isAppWaitingForFreshObjectMetadataState';
|
||||
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
|
||||
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
|
||||
import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
|
||||
import { isWorkflowSubObjectMetadata } from '@/object-metadata/utils/isWorkflowSubObjectMetadata';
|
||||
import { mapPaginatedObjectMetadataItemsToObjectMetadataItems } from '@/object-metadata/utils/mapPaginatedObjectMetadataItemsToObjectMetadataItems';
|
||||
import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled';
|
||||
import { useRecoilCallback } from 'recoil';
|
||||
import { ObjectMetadataItemsQuery } from '~/generated-metadata/graphql';
|
||||
import {
|
||||
FeatureFlagKey,
|
||||
ObjectMetadataItemsQuery,
|
||||
} from '~/generated-metadata/graphql';
|
||||
import { isDeeplyEqual } from '~/utils/isDeeplyEqual';
|
||||
|
||||
type FetchPolicy = 'network-only' | 'cache-first';
|
||||
@ -14,6 +20,9 @@ export const useRefreshObjectMetadataItems = (
|
||||
fetchPolicy: FetchPolicy = 'cache-first',
|
||||
) => {
|
||||
const client = useApolloMetadataClient();
|
||||
const isWorkflowEnabled = useIsFeatureEnabled(
|
||||
FeatureFlagKey.IsWorkflowEnabled,
|
||||
);
|
||||
|
||||
const refreshObjectMetadataItems = async () => {
|
||||
const result = await client.query<ObjectMetadataItemsQuery>({
|
||||
@ -27,7 +36,15 @@ export const useRefreshObjectMetadataItems = (
|
||||
pagedObjectMetadataItems: result.data,
|
||||
});
|
||||
|
||||
replaceObjectMetadataItemIfDifferent(objectMetadataItems);
|
||||
const filteredObjectMetadataItems = objectMetadataItems.filter((object) => {
|
||||
return (
|
||||
isWorkflowEnabled ||
|
||||
(object.nameSingular !== CoreObjectNameSingular.Workflow &&
|
||||
!isWorkflowSubObjectMetadata(object.nameSingular))
|
||||
);
|
||||
});
|
||||
|
||||
replaceObjectMetadataItemIfDifferent(filteredObjectMetadataItems);
|
||||
};
|
||||
|
||||
const replaceObjectMetadataItemIfDifferent = useRecoilCallback(
|
||||
|
||||
Reference in New Issue
Block a user