-
Notifications
You must be signed in to change notification settings - Fork 383
Add PostFeaturedImage to PrePublishPanel #6563
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
westonruter
merged 9 commits into
ampproject:develop
from
arthur791004:add/post-featured-image-in-pre-publish-panel
Aug 30, 2021
Merged
Changes from 4 commits
Commits
Show all changes
9 commits
Select commit
Hold shift + click to select a range
21498ed
Add PostFeaturedImage to PrePublishPanel
arthur791004 4d9cf3e
Keep featured image check in pre-publish panel after selected an image
arthur791004 88edc04
Fix tests
arthur791004 3938ae8
Simplify PrePublishPanel because we already applied filter to PostFea…
arthur791004 a3f904a
Update comments
pierlon 9761650
Merge branch 'develop' into add/post-featured-image-in-pre-publish-panel
pierlon ac183ea
Show a warning notice when there are validation errors for the featur…
pierlon 09e81c8
Remove unnecessary constant
pierlon 1fb801e
Place import in correct position
pierlon File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,73 +1,26 @@ | ||
/** | ||
* External dependencies | ||
*/ | ||
import PropTypes from 'prop-types'; | ||
|
||
/** | ||
* WordPress dependencies | ||
*/ | ||
import { Notice } from '@wordpress/components'; | ||
import { PostFeaturedImage } from '@wordpress/editor'; | ||
import { PluginPrePublishPanel } from '@wordpress/edit-post'; | ||
import { withSelect } from '@wordpress/data'; | ||
import { __ } from '@wordpress/i18n'; | ||
|
||
/** | ||
* Internal dependencies | ||
*/ | ||
import { validateFeaturedImage } from '../helpers'; | ||
|
||
/** | ||
* Conditionally adds a notice to the pre-publish panel for the featured image. | ||
* Adds a notice to the pre-publish panel for the featured image. | ||
* | ||
* @param {Object} props Component props. | ||
* @param {Object} props.featuredMedia Media object. | ||
* @param {Array} props.dimensions Required image dimensions. | ||
* @param {boolean} props.required Whether selecting a featured image is required. | ||
* @return {Function} Either a plain pre-publish panel, or the panel with a featured image notice. | ||
pierlon marked this conversation as resolved.
Show resolved
Hide resolved
|
||
*/ | ||
const PrePublishPanel = ( { featuredMedia, dimensions, required } ) => { | ||
const errors = validateFeaturedImage( featuredMedia, dimensions, required ); | ||
|
||
if ( ! errors ) { | ||
return null; | ||
} | ||
|
||
const PrePublishPanel = () => { | ||
return ( | ||
<PluginPrePublishPanel | ||
title={ __( 'Featured Image', 'amp' ) } | ||
initialOpen="true" | ||
> | ||
<Notice | ||
status={ required ? 'warning' : 'notice' } | ||
isDismissible={ false } | ||
> | ||
{ errors.map( ( errorMessage, index ) => { | ||
return ( | ||
<p key={ `error-${ index }` }> | ||
{ errorMessage } | ||
</p> | ||
); | ||
} ) } | ||
</Notice> | ||
<PostFeaturedImage /> | ||
</PluginPrePublishPanel> | ||
); | ||
}; | ||
|
||
PrePublishPanel.propTypes = { | ||
featuredMedia: PropTypes.object, | ||
dimensions: PropTypes.shape( { | ||
width: PropTypes.number.isRequired, | ||
height: PropTypes.number.isRequired, | ||
} ), | ||
required: PropTypes.bool, | ||
}; | ||
|
||
export default withSelect( ( select ) => { | ||
const currentPost = select( 'core/editor' ).getCurrentPost(); | ||
const editedFeaturedMedia = select( 'core/editor' ).getEditedPostAttribute( 'featured_media' ); | ||
const featuredMedia = currentPost.featured_media || editedFeaturedMedia; | ||
PrePublishPanel.propTypes = {}; | ||
pierlon marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
return { | ||
featuredMedia: featuredMedia ? select( 'core' ).getMedia( featuredMedia ) : null, | ||
}; | ||
} )( PrePublishPanel ); | ||
export default PrePublishPanel; |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.