-
Notifications
You must be signed in to change notification settings - Fork 4.3k
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
DataViews: Type the BulkActionsToolbar component #61673
Conversation
The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.
To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook. |
} } | ||
onActionPerformed={ () => { | ||
setActionInProgress( null ); | ||
} } |
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 found that these were useless.
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.
Hi @youknowriad I think we need these. When an action is being executed in a modal we still to call setActionInProgress( action.id ); when an action begins and when the action ends setActionInProgress( null );. If we don't do this in an action like delete where the available actions and the number of items change the toolbar will be changing during the action execution.
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.
but these props don't seem present on the component?
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 props are present on the render modal:
onActionStart, |
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.
Sure but then the props need to be added to ActionWithModal
if we really want this callback here. I removed the passing of the props, not the props themselves, I didn't touch the component personally.
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.
Is there any bug that I can test with to understand that?
onClick={ () => { | ||
setActionInProgress( action.id ); | ||
action.callback( selectedItems, () => { | ||
setActionInProgress( action.id ); | ||
} ); |
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 think callbacks don't have a second argument, so that code was probably useless too.
const selectedEligibleItems = useMemo( () => { | ||
return selectedItems.filter( ( item ) => { | ||
return action.isEligible( item ); | ||
return ! action.isEligible || action.isEligible( item ); |
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.
This was not handling the case where actions don't have isEligible defined.
Size Change: -16 B (0%) Total Size: 1.75 MB
ℹ️ View Unchanged
|
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.
Other than a comment I left here #61673 (comment) the PR looks good 👍
Related #55083
Follow-up to #61185
What?
The DataViews package is a types heavy package. There's a lot of structures that need to be documented properly. So this continues the effort to add explicit types to the package. This PR focuses on typing the BulkActionsToolbar component.
Testing instructions
There's no functional change, it's essentially a code quality + documentation change.