-
Notifications
You must be signed in to change notification settings - Fork 4.7k
Only check MediaPlaceholder allowedTypes array length if prop exists #11694
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
Only check MediaPlaceholder allowedTypes array length if prop exists #11694
Conversation
| let title = labels.title || ''; | ||
| if ( ! instructions || ! title ) { | ||
| const isOneType = 1 === allowedTypes.length; | ||
| const isOneType = 1 === allowedTypes && allowedTypes.length; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You probably wanted to do this:
| const isOneType = 1 === allowedTypes && allowedTypes.length; | |
| const isOneType = allowedTypes && 1 === allowedTypes.length; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What do you think about defining allowedTypes as an empty array by default?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right you are on the boolean 🤦♂️ And I considered initializing allowedTypes to [] in the destructuring assignment, but then backed off because we do a if ( ! this.props.allowedTypes ) check elsewhere. Upon reflection, since the default initialization won't mutate the value of the prop, the two approaches aren't incompatible and I think your suggestion's the way to go. Will push a commit momentarily.
| let title = labels.title || ''; | ||
| if ( ! instructions || ! title ) { | ||
| const isOneType = 1 === allowedTypes.length; | ||
| const isOneType = allowedTypes.length; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The check needs to stay :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤦♂️
|
@ocean90 Thanks for the review, apologies for the sloppy commits! Pushed up a fix, should be ready for review again once Travis has its say. |
| multiple = false, | ||
| notices, | ||
| allowedTypes, | ||
| allowedTypes = [], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see that the prop is also used in onlyAllowsImages and onlyAllowsImages methods, should we add the default values there too?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I looked into that earlier, and I don't think changes are necessary in either of those cases. On onlyAllowsImages and onFilesUpload both, the existing logic should handle both [] and null/false/undefined/etc. (onlyAllowsImages has the checks in the media placeholder component, while onFilesUpload passes the prop value through to be checke within the mediaUpload method)
Description
Adds an existence check to
allowedTypesbefore attempting to accessallowedTypes.lengthto fix #11692.How has this been tested?
MediaPlaceholderwithoutallowedTypesand confirmed that in all cases the patch allows these custom blocks to load as they did several weeks ago.Types of changes
Bug fix: Add an undefined/null check to an array before accessing
.length.Checklist:
My code follows the accessibility standards.