From 84878b5ecfbc11fbbe7d3ac42da1c1a162a0bbde Mon Sep 17 00:00:00 2001 From: Kai Hao Date: Wed, 17 Nov 2021 15:15:22 +0800 Subject: [PATCH] Add action to remove template from the list --- .../edit-site/src/components/list/table.js | 48 ++++++++++++++++--- packages/edit-site/src/store/actions.js | 19 ++++---- packages/edit-site/src/store/test/actions.js | 29 ++++------- .../src/utils/is-template-removable.js | 13 +++++ 4 files changed, 73 insertions(+), 36 deletions(-) create mode 100644 packages/edit-site/src/utils/is-template-removable.js diff --git a/packages/edit-site/src/components/list/table.js b/packages/edit-site/src/components/list/table.js index eb3e87826c551..87df26fb46549 100644 --- a/packages/edit-site/src/components/list/table.js +++ b/packages/edit-site/src/components/list/table.js @@ -1,19 +1,44 @@ /** * WordPress dependencies */ -import { useSelect } from '@wordpress/data'; +import { useSelect, useDispatch } from '@wordpress/data'; import { store as coreStore } from '@wordpress/core-data'; import { __, sprintf } from '@wordpress/i18n'; import { VisuallyHidden, - Button, FlexItem, __experimentalHStack as HStack, __experimentalHeading as Heading, + DropdownMenu, + MenuGroup, + MenuItem, } from '@wordpress/components'; import { moreVertical } from '@wordpress/icons'; import { addQueryArgs } from '@wordpress/url'; +/** + * Internal dependencies + */ +import { store as editSiteStore } from '../../store'; +import isTemplateRemovable from '../../utils/is-template-removable'; + +function Actions( { template, onClose } ) { + const { removeTemplate } = useDispatch( editSiteStore ); + + return ( + + { + removeTemplate( template ); + onClose(); + } } + > + { __( 'Remove template' ) } + + + ); +} + export default function Table( { templateType } ) { const { templates, isLoading, postType } = useSelect( ( select ) => { @@ -85,11 +110,20 @@ export default function Table( { templateType } ) { { template.theme } -