@wordpress/editor
Version:
Enhanced block editor for WordPress posts.
59 lines (51 loc) • 1.46 kB
JavaScript
/**
* WordPress dependencies
*/
import { useDispatch, useSelect } from '@wordpress/data';
import { privateApis as patternsPrivateApis } from '@wordpress/patterns';
import { store as coreStore } from '@wordpress/core-data';
import { store as interfaceStore } from '@wordpress/interface';
/**
* Internal dependencies
*/
import { unlock } from '../../lock-unlock';
import { store as editorStore } from '../../store';
import { PATTERN_POST_TYPE } from '../../store/constants';
const { DuplicatePatternModal } = unlock( patternsPrivateApis );
export const modalName = 'editor/pattern-duplicate';
export default function PatternDuplicateModal() {
const isActive = useSelect( ( select ) =>
select( interfaceStore ).isModalActive( modalName )
);
const { record, postType } = useSelect(
( select ) => {
if ( ! isActive ) {
return {};
}
const { getCurrentPostType, getCurrentPostId } =
select( editorStore );
const { getEditedEntityRecord } = select( coreStore );
const _postType = getCurrentPostType();
return {
record: getEditedEntityRecord(
'postType',
_postType,
getCurrentPostId()
),
postType: _postType,
};
},
[ isActive ]
);
const { closeModal } = useDispatch( interfaceStore );
if ( ! isActive || postType !== PATTERN_POST_TYPE ) {
return null;
}
return (
<DuplicatePatternModal
onClose={ closeModal }
onSuccess={ () => closeModal() }
pattern={ record }
/>
);
}