Skip to content

Commit

Permalink
Address feedback
Browse files Browse the repository at this point in the history
  • Loading branch information
Mamaduka committed Nov 26, 2021
1 parent 9baee55 commit 802a14b
Showing 1 changed file with 52 additions and 13 deletions.
65 changes: 52 additions & 13 deletions packages/edit-site/src/components/list/actions/rename-menu-item.js
@@ -1,10 +1,9 @@
/**
* WordPress dependencies
*/
import { useState } from '@wordpress/element';
import { useDispatch } from '@wordpress/data';
import { useEntityProp, store as coreStore } from '@wordpress/core-data';
import { __ } from '@wordpress/i18n';
import { useState } from '@wordpress/element';
import { useDispatch, useSelect } from '@wordpress/data';
import {
Button,
Flex,
Expand All @@ -13,25 +12,62 @@ import {
Modal,
TextControl,
} from '@wordpress/components';
import { store as coreStore } from '@wordpress/core-data';
import { store as noticesStore } from '@wordpress/notices';

export default function RenameMenuItem( { template, onClose } ) {
const [ title, setTitle ] = useState( () => template.title.rendered );
const [ isModalOpen, setIsModalOpen ] = useState( false );

const { saveEditedEntityRecord } = useDispatch( coreStore );
const [ title, setTitle ] = useEntityProp(
'postType',
template.type,
'title',
template.id
const { getLastEntitySaveError } = useSelect( coreStore );
const { editEntityRecord, saveEditedEntityRecord } = useDispatch(
coreStore
);
const { createSuccessNotice, createErrorNotice } = useDispatch(
noticesStore
);

async function onTemplateRename( event ) {
event.preventDefault();
setIsModalOpen( false );
onClose();

// Presist edited entity.
await saveEditedEntityRecord( 'postType', template.type, template.id );
try {
await editEntityRecord( 'postType', template.type, template.id, {
title,
} );

// Update state before saving rerenders the list.
setTitle( '' );
setIsModalOpen( false );
onClose();

// Persist edited entity.
await saveEditedEntityRecord(
'postType',
template.type,
template.id
);

const lastError = getLastEntitySaveError(
'postType',
template.type,
template.id
);

if ( lastError ) {
throw lastError;
}

createSuccessNotice( __( 'Template has been renamed.' ), {
type: 'snackbar',
} );
} catch ( error ) {
const errorMessage =
error.message && error.code !== 'unknown_error'
? error.message
: __( 'An error occurred while renaming the template.' );

createErrorNotice( errorMessage, { type: 'snackbar' } );
}
}

return (
Expand All @@ -49,6 +85,7 @@ export default function RenameMenuItem( { template, onClose } ) {
closeLabel={ __( 'Close' ) }
onRequestClose={ () => {
setIsModalOpen( false );
setTitle( '' );
} }
overlayClassName="edit-site-list__rename-modal"
>
Expand All @@ -59,6 +96,7 @@ export default function RenameMenuItem( { template, onClose } ) {
label={ __( 'Name' ) }
value={ title }
onChange={ setTitle }
required
/>
</FlexItem>
</Flex>
Expand All @@ -73,6 +111,7 @@ export default function RenameMenuItem( { template, onClose } ) {
variant="tertiary"
onClick={ () => {
setIsModalOpen( false );
setTitle( '' );
} }
>
{ __( 'Cancel' ) }
Expand Down

0 comments on commit 802a14b

Please sign in to comment.