Remove workflow context + clean action config (#13919)
- Remove create related version and runs from workflow action config - Remove WorkflowStepContextProvider. Use states instead
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
import { useRecoilComponentValue } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValue';
|
||||
import { workflowVisualizerWorkflowVersionIdComponentState } from '@/workflow/states/workflowVisualizerWorkflowVersionIdComponentState';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
export const useWorkflowVersionIdOrThrow = () => {
|
||||
const workflowVersionId = useRecoilComponentValue(
|
||||
workflowVisualizerWorkflowVersionIdComponentState,
|
||||
);
|
||||
|
||||
if (!isDefined(workflowVersionId)) {
|
||||
throw new Error('Expected the workflow version ID to be defined');
|
||||
}
|
||||
|
||||
return workflowVersionId;
|
||||
};
|
||||
@@ -1,9 +0,0 @@
|
||||
import { createRequiredContext } from '~/utils/createRequiredContext';
|
||||
|
||||
type WorkflowStepContextType = {
|
||||
workflowVersionId: string;
|
||||
workflowRunId?: string;
|
||||
};
|
||||
|
||||
export const [WorkflowStepContextProvider, useWorkflowStepContextOrThrow] =
|
||||
createRequiredContext<WorkflowStepContextType>('WorkflowStepContext');
|
||||
+14
@@ -1,6 +1,9 @@
|
||||
import { useSetRecoilComponentState } from '@/ui/utilities/state/component-state/hooks/useSetRecoilComponentState';
|
||||
import { useWorkflowWithCurrentVersion } from '@/workflow/hooks/useWorkflowWithCurrentVersion';
|
||||
import { workflowVisualizerWorkflowIdComponentState } from '@/workflow/states/workflowVisualizerWorkflowIdComponentState';
|
||||
import { workflowVisualizerWorkflowVersionIdComponentState } from '@/workflow/states/workflowVisualizerWorkflowVersionIdComponentState';
|
||||
import { useEffect } from 'react';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
export const WorkflowVisualizerEffect = ({
|
||||
workflowId,
|
||||
@@ -10,10 +13,21 @@ export const WorkflowVisualizerEffect = ({
|
||||
const setWorkflowVisualizerWorkflowId = useSetRecoilComponentState(
|
||||
workflowVisualizerWorkflowIdComponentState,
|
||||
);
|
||||
const setWorkflowVisualizerWorkflowVersionId = useSetRecoilComponentState(
|
||||
workflowVisualizerWorkflowVersionIdComponentState,
|
||||
);
|
||||
|
||||
const workflow = useWorkflowWithCurrentVersion(workflowId);
|
||||
|
||||
useEffect(() => {
|
||||
setWorkflowVisualizerWorkflowId(workflowId);
|
||||
}, [setWorkflowVisualizerWorkflowId, workflowId]);
|
||||
|
||||
useEffect(() => {
|
||||
if (isDefined(workflow)) {
|
||||
setWorkflowVisualizerWorkflowVersionId(workflow.currentVersion.id);
|
||||
}
|
||||
}, [setWorkflowVisualizerWorkflowVersionId, workflow]);
|
||||
|
||||
return null;
|
||||
};
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
import { SelectControl } from '@/ui/input/components/SelectControl';
|
||||
import { Dropdown } from '@/ui/layout/dropdown/components/Dropdown';
|
||||
import { useWorkflowStepContextOrThrow } from '@/workflow/states/context/WorkflowStepContext';
|
||||
import { useWorkflowVersionIdOrThrow } from '@/workflow/hooks/useWorkflowVersionIdOrThrow';
|
||||
import { stepsOutputSchemaFamilySelector } from '@/workflow/states/selectors/stepsOutputSchemaFamilySelector';
|
||||
import { useGetFilterFieldMetadataItem } from '@/workflow/workflow-steps/workflow-actions/filter-action/hooks/useGetFilterFieldMetadataItem';
|
||||
import { useUpsertStepFilterSettings } from '@/workflow/workflow-steps/workflow-actions/filter-action/hooks/useUpsertStepFilterSettings';
|
||||
@@ -36,7 +36,7 @@ export const WorkflowStepFilterFieldSelect = ({
|
||||
const { upsertStepFilterSettings } = useUpsertStepFilterSettings();
|
||||
|
||||
const { t } = useLingui();
|
||||
const { workflowVersionId } = useWorkflowStepContextOrThrow();
|
||||
const workflowVersionId = useWorkflowVersionIdOrThrow();
|
||||
|
||||
const stepId = extractRawVariableNamePart({
|
||||
rawVariableName: stepFilter.stepOutputKey,
|
||||
|
||||
+3
-7
@@ -4,7 +4,7 @@ import { FormFieldInput } from '@/object-record/record-field/ui/components/FormF
|
||||
import { FormSingleRecordPicker } from '@/object-record/record-field/ui/form-types/components/FormSingleRecordPicker';
|
||||
import { type FieldMetadata } from '@/object-record/record-field/ui/types/FieldMetadata';
|
||||
import { RightDrawerFooter } from '@/ui/layout/right-drawer/components/RightDrawerFooter';
|
||||
import { useWorkflowStepContextOrThrow } from '@/workflow/states/context/WorkflowStepContext';
|
||||
import { useWorkflowRunIdOrThrow } from '@/workflow/hooks/useWorkflowRunIdOrThrow';
|
||||
import { type WorkflowFormAction } from '@/workflow/types/Workflow';
|
||||
import { WorkflowStepBody } from '@/workflow/workflow-steps/components/WorkflowStepBody';
|
||||
import { WorkflowStepHeader } from '@/workflow/workflow-steps/components/WorkflowStepHeader';
|
||||
@@ -36,16 +36,12 @@ export const WorkflowEditActionFormFiller = ({
|
||||
const { getIcon } = useIcons();
|
||||
const { submitFormStep } = useSubmitFormStep();
|
||||
const [formData, setFormData] = useState<FormData>(action.settings.input);
|
||||
const { workflowRunId } = useWorkflowStepContextOrThrow();
|
||||
const workflowRunId = useWorkflowRunIdOrThrow();
|
||||
const { goBackFromCommandMenu } = useCommandMenuHistory();
|
||||
const { updateWorkflowRunStep } = useUpdateWorkflowRunStep();
|
||||
const [error, setError] = useState<string | undefined>(undefined);
|
||||
|
||||
const canSubmit = !actionOptions.readonly && !isDefined(error);
|
||||
|
||||
if (!isDefined(workflowRunId)) {
|
||||
throw new Error('Form filler action must be used in a workflow run');
|
||||
}
|
||||
|
||||
const headerTitle = isDefined(action.name) ? action.name : `Form`;
|
||||
const headerIcon = getActionIcon(action.type);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user