diff --git a/mailpoet/assets/js/src/automation/listing/components/cells/more.tsx b/mailpoet/assets/js/src/automation/listing/components/cells/more.tsx index 33556793d4..a5cd4c5ced 100644 --- a/mailpoet/assets/js/src/automation/listing/components/cells/more.tsx +++ b/mailpoet/assets/js/src/automation/listing/components/cells/more.tsx @@ -1,7 +1,12 @@ import { __ } from '@wordpress/i18n'; import { DropdownMenu } from '@wordpress/components'; import { moreVertical } from '@wordpress/icons'; -import { useDuplicateButton, useRestoreButton, useTrashButton } from '../menu'; +import { + useDeleteButton, + useDuplicateButton, + useRestoreButton, + useTrashButton, +} from '../menu'; import { Workflow } from '../../workflow'; type Props = { @@ -14,8 +19,9 @@ export function More({ workflow }: Props): JSX.Element { const duplicate = useDuplicateButton(workflow); const trash = useTrashButton(workflow); const restore = useRestoreButton(workflow); + const del = useDeleteButton(workflow); - const menuItems = [duplicate, trash, restore].filter((item) => item); + const menuItems = [duplicate, trash, restore, del].filter((item) => item); return ( <> diff --git a/mailpoet/assets/js/src/automation/listing/components/menu/delete.tsx b/mailpoet/assets/js/src/automation/listing/components/menu/delete.tsx new file mode 100644 index 0000000000..eb37946062 --- /dev/null +++ b/mailpoet/assets/js/src/automation/listing/components/menu/delete.tsx @@ -0,0 +1,22 @@ +import { useDispatch } from '@wordpress/data'; +import { __ } from '@wordpress/i18n'; +import { Item } from './item'; +import { storeName } from '../../store'; +import { Workflow, WorkflowStatus } from '../../workflow'; + +export const useDeleteButton = (workflow: Workflow): Item | undefined => { + const { deleteWorkflow } = useDispatch(storeName); + + if (workflow.status !== WorkflowStatus.TRASH) { + return undefined; + } + + return { + key: 'delete', + control: { + title: __('Delete permanently', 'mailpoet'), + icon: null, + onClick: () => deleteWorkflow(workflow), + }, + }; +};