aboutsummaryrefslogtreecommitdiff
path: root/javascript/dragdrop.js
diff options
context:
space:
mode:
author48DESIGN <github@48design.de>2022-09-27 08:05:19 +0200
committerGitHub <noreply@github.com>2022-09-27 08:05:19 +0200
commite4145c84537b563a4b0ad7d225764f8c446479b5 (patch)
tree7a3aa1a9e22632eeb29bab969bd1cf61f8c9ca0f /javascript/dragdrop.js
parent2846ca57028cca1a9ce9cee66d2500b4ac38a9c6 (diff)
parentc0b1177a3203091ca43f2d08f24dd821f1237612 (diff)
Merge branch 'master' into notification-sound
Diffstat (limited to 'javascript/dragdrop.js')
-rw-r--r--javascript/dragdrop.js24
1 files changed, 15 insertions, 9 deletions
diff --git a/javascript/dragdrop.js b/javascript/dragdrop.js
index c01f66e2..5aac57f7 100644
--- a/javascript/dragdrop.js
+++ b/javascript/dragdrop.js
@@ -68,13 +68,19 @@ window.addEventListener('paste', e => {
if ( ! isValidImageList( files ) ) {
return;
}
- [...gradioApp().querySelectorAll('input[type=file][accept="image/x-png,image/gif,image/jpeg"]')]
- .filter(input => !input.matches('.\\!hidden input[type=file]'))
- .forEach(input => {
- input.files = files;
- input.dispatchEvent(new Event('change'))
- });
- [...gradioApp().querySelectorAll('[data-testid="image"]')]
- .filter(imgWrap => !imgWrap.closest('.\\!hidden'))
- .forEach(imgWrap => dropReplaceImage( imgWrap, files ));
+
+ const visibleImageFields = [...gradioApp().querySelectorAll('[data-testid="image"]')]
+ .filter(el => uiElementIsVisible(el));
+ if ( ! visibleImageFields.length ) {
+ return;
+ }
+
+ const firstFreeImageField = visibleImageFields
+ .filter(el => el.querySelector('input[type=file]'))?.[0];
+
+ dropReplaceImage(
+ firstFreeImageField ?
+ firstFreeImageField :
+ visibleImageFields[visibleImageFields.length - 1]
+ , files );
});