fix(angular-list): fix drag drop issue #3748
Open
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.
Closes #
Summary
Bug: sometimes, when drag and drop an item in the Angular list component, the item may be removed from the list unexpectedly. It is difficult to reproduce on will. Console logging shows that when the problem happens, the list component received a
dragEnd
event but didn't receive adropped
event. That explains why the item is removed from the list - thedropped
event handler adds a duplicate and thedragEnd
event handler removes the original.Fix: according to MDN https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Drag_operations#specifying_drop_targets, we need to prevent the default behavior by cancelling both the
dragenter
anddragover
events. This PR adds event handler fordragenter
. With this fix, I could no longer reproduce the problem.Change List (commits, features, bugs, etc)
Acceptance Test (how to verify the PR)
Regression Test (how to make sure this PR doesn't break old functionality)
Things to look for during review
iot
orbx
class prefix is using the prefix variabledata-testid
attribute. New test ids should have test written to ensure they are not changed or removed.