Hide stop run behind flag (#15306)

As title
This commit is contained in:
Thomas Trompette
2025-10-23 18:44:47 +02:00
committed by GitHub
parent bbe16c23bc
commit 6f45c47435
7 changed files with 18 additions and 2 deletions
@@ -1248,6 +1248,7 @@ export enum FeatureFlagKey {
IS_RELATION_CONNECT_ENABLED = 'IS_RELATION_CONNECT_ENABLED',
IS_STRIPE_INTEGRATION_ENABLED = 'IS_STRIPE_INTEGRATION_ENABLED',
IS_UNIQUE_INDEXES_ENABLED = 'IS_UNIQUE_INDEXES_ENABLED',
IS_WORKFLOW_RUN_STOPPAGE_ENABLED = 'IS_WORKFLOW_RUN_STOPPAGE_ENABLED',
IS_WORKSPACE_MIGRATION_V2_ENABLED = 'IS_WORKSPACE_MIGRATION_V2_ENABLED'
}
@@ -1212,6 +1212,7 @@ export enum FeatureFlagKey {
IS_RELATION_CONNECT_ENABLED = 'IS_RELATION_CONNECT_ENABLED',
IS_STRIPE_INTEGRATION_ENABLED = 'IS_STRIPE_INTEGRATION_ENABLED',
IS_UNIQUE_INDEXES_ENABLED = 'IS_UNIQUE_INDEXES_ENABLED',
IS_WORKFLOW_RUN_STOPPAGE_ENABLED = 'IS_WORKFLOW_RUN_STOPPAGE_ENABLED',
IS_WORKSPACE_MIGRATION_V2_ENABLED = 'IS_WORKSPACE_MIGRATION_V2_ENABLED'
}
@@ -27,8 +27,13 @@ export const WORKFLOW_RUNS_ACTIONS_CONFIG = inheritActionsFromDefaultConfig({
type: ActionType.Standard,
scope: ActionScope.RecordSelection,
Icon: IconPlayerStop,
shouldBeRegistered: ({ selectedRecord }) => {
return selectedRecord?.status === 'RUNNING';
shouldBeRegistered: ({
selectedRecord,
isWorkflowRunStoppageEnabled,
}) => {
return (
selectedRecord?.status === 'RUNNING' && isWorkflowRunStoppageEnabled
);
},
availableOn: [
ActionViewType.SHOW_PAGE,
@@ -26,4 +26,5 @@ export type ShouldBeRegisteredFunctionParams = {
objectMetadataItemNameSingular: string,
) => boolean;
forceRegisteredActionsByKey: Record<string, boolean | undefined>;
isWorkflowRunStoppageEnabled: boolean;
};
@@ -14,8 +14,10 @@ import { useObjectPermissionsForObject } from '@/object-record/hooks/useObjectPe
import { hasAnySoftDeleteFilterOnViewComponentSelector } from '@/object-record/record-filter/states/hasAnySoftDeleteFilterOnView';
import { recordStoreFamilyState } from '@/object-record/record-store/states/recordStoreFamilyState';
import { useRecoilComponentValue } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValue';
import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled';
import { useContext } from 'react';
import { useRecoilCallback, useRecoilValue } from 'recoil';
import { FeatureFlagKey } from '~/generated/graphql';
export const useShouldActionBeRegisteredParams = ({
objectMetadataItem,
@@ -23,6 +25,9 @@ export const useShouldActionBeRegisteredParams = ({
objectMetadataItem?: ObjectMetadataItem;
}): ShouldBeRegisteredFunctionParams => {
const { sortedFavorites: favorites } = useFavorites();
const isWorkflowRunStoppageEnabled =
useIsFeatureEnabled(FeatureFlagKey.IS_WORKFLOW_RUN_STOPPAGE_ENABLED) ??
false;
const contextStoreTargetedRecordsRule = useRecoilComponentValue(
contextStoreTargetedRecordsRuleComponentState,
@@ -119,5 +124,6 @@ export const useShouldActionBeRegisteredParams = ({
getTargetObjectReadPermission: getObjectReadPermission,
getTargetObjectWritePermission: getObjectWritePermission,
forceRegisteredActionsByKey,
isWorkflowRunStoppageEnabled,
};
};
@@ -20,4 +20,5 @@ export enum FeatureFlagKey {
IS_EMAILING_DOMAIN_ENABLED = 'IS_EMAILING_DOMAIN_ENABLED',
IS_DYNAMIC_SEARCH_FIELDS_ENABLED = 'IS_DYNAMIC_SEARCH_FIELDS_ENABLED',
IS_COMMON_API_ENABLED = 'IS_COMMON_API_ENABLED',
IS_WORKFLOW_RUN_STOPPAGE_ENABLED = 'IS_WORKFLOW_RUN_STOPPAGE_ENABLED',
}
@@ -143,6 +143,7 @@ describe('WorkspaceEntityManager', () => {
IS_EMAILING_DOMAIN_ENABLED: false,
IS_DYNAMIC_SEARCH_FIELDS_ENABLED: false,
IS_COMMON_API_ENABLED: false,
IS_WORKFLOW_RUN_STOPPAGE_ENABLED: false,
},
eventEmitterService: {
emitMutationEvent: jest.fn(),