Fix workflow with manual triggers and no selection not appearing in the command menu --------- Co-authored-by: Charles Bochet <charles@twenty.com>
75 lines
2.6 KiB
TypeScript
75 lines
2.6 KiB
TypeScript
import { useRunWorkflowRecordActions } from '@/action-menu/actions/record-actions/run-workflow-actions/hooks/useRunWorkflowRecordActions';
|
|
import { useRunWorkflowRecordAgnosticActions } from '@/action-menu/actions/record-agnostic-actions/run-workflow-actions/hooks/useRunWorkflowRecordAgnosticActions';
|
|
import {
|
|
ActionMenuContext,
|
|
ActionMenuContextType,
|
|
} from '@/action-menu/contexts/ActionMenuContext';
|
|
import { useRegisteredActions } from '@/action-menu/hooks/useRegisteredActions';
|
|
import { useShouldActionBeRegisteredParams } from '@/action-menu/hooks/useShouldActionBeRegisteredParams';
|
|
import { contextStoreTargetedRecordsRuleComponentState } from '@/context-store/states/contextStoreTargetedRecordsRuleComponentState';
|
|
import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
|
|
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
|
|
import { useWorkflowWithCurrentVersion } from '@/workflow/hooks/useWorkflowWithCurrentVersion';
|
|
|
|
export const ActionMenuContextProviderWorkflowsEnabled = ({
|
|
objectMetadataItem,
|
|
isInRightDrawer,
|
|
displayType,
|
|
actionMenuType,
|
|
children,
|
|
}: {
|
|
objectMetadataItem: ObjectMetadataItem;
|
|
isInRightDrawer: ActionMenuContextType['isInRightDrawer'];
|
|
displayType: ActionMenuContextType['displayType'];
|
|
actionMenuType: ActionMenuContextType['actionMenuType'];
|
|
children: React.ReactNode;
|
|
}) => {
|
|
const params = useShouldActionBeRegisteredParams({
|
|
objectMetadataItem,
|
|
});
|
|
|
|
const workflowWithCurrentVersion = useWorkflowWithCurrentVersion(
|
|
params.selectedRecord?.id,
|
|
);
|
|
|
|
const shouldBeRegisteredParams = {
|
|
...params,
|
|
workflowWithCurrentVersion,
|
|
};
|
|
|
|
const actions = useRegisteredActions(shouldBeRegisteredParams);
|
|
|
|
const contextStoreTargetedRecordsRule = useRecoilComponentValueV2(
|
|
contextStoreTargetedRecordsRuleComponentState,
|
|
);
|
|
|
|
const isSingleRecordSelection =
|
|
contextStoreTargetedRecordsRule.mode === 'selection' &&
|
|
contextStoreTargetedRecordsRule.selectedRecordIds.length === 1;
|
|
|
|
const runWorkflowRecordActions = useRunWorkflowRecordActions({
|
|
objectMetadataItem,
|
|
skip: !isSingleRecordSelection,
|
|
});
|
|
|
|
const runWorkflowRecordAgnosticActions =
|
|
useRunWorkflowRecordAgnosticActions();
|
|
|
|
return (
|
|
<ActionMenuContext.Provider
|
|
value={{
|
|
isInRightDrawer,
|
|
displayType,
|
|
actionMenuType,
|
|
actions: [
|
|
...actions,
|
|
...runWorkflowRecordActions,
|
|
...runWorkflowRecordAgnosticActions,
|
|
],
|
|
}}
|
|
>
|
|
{children}
|
|
</ActionMenuContext.Provider>
|
|
);
|
|
};
|