[Port dspace-7_x] fix: prevent drop files overlay from appearing when dragging text#5164
[Port dspace-7_x] fix: prevent drop files overlay from appearing when dragging text#5164JorgeEscire wants to merge 2 commits intoDSpace:dspace-7_xfrom
Conversation
…ections in Firefox (DSpace#1268)
|
Thank you for the fix @JorgeEscire! You may have already seen, but just to note looks like this is currently failing one of the e2e tests. |
|
Hello, @lgeggleston, we’ve already fixed the error; however, it seems to me that an issue with the CI has caused an error to occur when running the 18.x test, as I haven’t been able to reproduce it locally and this error wasn’t present in the previous run. |
|
@JorgeEscire and @lgeggleston : I triggered a re-run of the automated tests. The specific test failure looked to me like it may have been a random issue. There are a few e2e tests which are occasionally flakey, and if re-run, they will usually succeed. I expect this was one of those scenarios. |
|
@JorgeEscire : As a sidenote, I just realized this PR was created against the |
|
@tdonohue @lgeggleston: @JorgeEscire is my colleague; for now, I’ll take responsibility for this PR. I apologize for the mistake regarding the branch; I’ve already created the corresponding PR on #5312 to apply the change to the main branch (and verified that the issue still occurs in the current version). Thanks! |
|
@oscar-escire Thank you for creating #5312 , sounds good! |
References
Description
Prevent the "drop files" overlay from appearing when dragging text selections in Firefox on submission pages.
Instructions for Reviewers
Problem
In Firefox, dragging text selections on submission pages (new submission or edit workspace item) triggers the "Drop files to attach them to the item" overlay. This happens because the
window:dragoverevent handlers inUploaderComponentandFileDropzoneNoUploaderComponentdon't distinguish between file drags and text selection drags. Sometimes the overlay stays visible until the page is refreshed.Chrome doesn't have this issue because it doesn't support dragging text selections in the same way.
Fix
Added a check on
event.dataTransfer.typesto verify it contains'Files'before showing the document drop zone overlay. When dragging text,dataTransfer.typesonly containstext/plainand/ortext/html, notFiles.List of changes in this PR:
dataTransfer.types.includes('Files')guard inUploaderComponent.onDragOver()(uploader.component.ts)FileDropzoneNoUploaderComponent.onDragOver()(file-dropzone-no-uploader.component.ts)How to test
Checklist
mainbranch of code (unless it is a backport or is fixing an issue specific to an older branch).npm run lintnpm run check-circ-deps)package.json), I've made sure their licenses align with the DSpace BSD License based on the Licensing of Contributions documentation.