@wordpress/editor
Version:
Enhanced block editor for WordPress posts.
62 lines (56 loc) • 1.45 kB
JavaScript
/**
* External dependencies
*/
import { filter } from 'lodash';
/**
* WordPress dependencies
*/
import { NoticeList, SnackbarList } from '@wordpress/components';
import { withSelect, withDispatch } from '@wordpress/data';
import { compose } from '@wordpress/compose';
import { store as noticesStore } from '@wordpress/notices';
/**
* Internal dependencies
*/
import TemplateValidationNotice from '../template-validation-notice';
export function EditorNotices( { notices, onRemove } ) {
const dismissibleNotices = filter( notices, {
isDismissible: true,
type: 'default',
} );
const nonDismissibleNotices = filter( notices, {
isDismissible: false,
type: 'default',
} );
const snackbarNotices = filter( notices, {
type: 'snackbar',
} );
return (
<>
<NoticeList
notices={ nonDismissibleNotices }
className="components-editor-notices__pinned"
/>
<NoticeList
notices={ dismissibleNotices }
className="components-editor-notices__dismissible"
onRemove={ onRemove }
>
<TemplateValidationNotice />
</NoticeList>
<SnackbarList
notices={ snackbarNotices }
className="components-editor-notices__snackbar"
onRemove={ onRemove }
/>
</>
);
}
export default compose( [
withSelect( ( select ) => ( {
notices: select( noticesStore ).getNotices(),
} ) ),
withDispatch( ( dispatch ) => ( {
onRemove: dispatch( noticesStore ).removeNotice,
} ) ),
] )( EditorNotices );