Files
piratepoet/mailpoet/assets/js/src/automation/testing.tsx
Jan Jakes 1b5d6bd974 Remove no longer needed empty trigger
[MAILPOET-4523]
2022-09-12 14:40:36 -05:00

85 lines
1.8 KiB
TypeScript

import { ReactNode } from 'react';
import { useMutation } from './api';
import { Step, Workflow } from './editor/components/workflow/types';
export const createRootStep = (): Step => ({
id: 'root',
type: 'root',
key: 'core:root',
args: {},
next_steps: [],
});
const createWorkflow = (): Partial<Workflow> => ({
name: 'Empty workflow',
steps: {
root: createRootStep(),
},
});
export function CreateEmptyWorkflowButton(): JSX.Element {
const [createSchema, { loading, error }] = useMutation('workflows', {
method: 'POST',
});
return (
<div>
<button
className="button"
type="button"
onClick={async () => {
await createSchema({
body: JSON.stringify(createWorkflow()),
});
window.location.reload();
}}
disabled={loading}
>
Create empty workflow (premium required)
</button>
{error && (
<div>{error?.data?.message ?? 'An unknown error occurred'}</div>
)}
</div>
);
}
type TemplateButtonProps = {
slug: string;
children?: ReactNode;
};
export function CreateWorkflowFromTemplateButton({
slug,
children,
}: TemplateButtonProps): JSX.Element {
const [createWorkflowFromTemplate, { loading, error }] = useMutation(
'workflows/create-from-template',
{
method: 'POST',
body: JSON.stringify({
slug,
}),
},
);
return (
<div>
<button
className="button button-primary"
type="button"
onClick={async () => {
await createWorkflowFromTemplate();
window.location.reload();
}}
disabled={loading}
>
{children}
</button>
{error && (
<div>{error?.data?.message ?? 'An unknown error occurred'}</div>
)}
</div>
);
}