From 6ca877eb6d569e52fcbdd0eb4d4feee8e9e602ca Mon Sep 17 00:00:00 2001 From: Anatol Ulrich <45840+spookyvision@users.noreply.github.com> Date: Fri, 9 Feb 2024 12:02:32 +0100 Subject: [PATCH] fix `HasFileData` for `WebDragData` --- packages/web/src/event.rs | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/packages/web/src/event.rs b/packages/web/src/event.rs index e79b55fe8..b6aa63077 100644 --- a/packages/web/src/event.rs +++ b/packages/web/src/event.rs @@ -10,7 +10,7 @@ use dioxus_html::{ }; use js_sys::Array; use wasm_bindgen::{prelude::wasm_bindgen, JsCast, JsValue}; -use web_sys::{Document, Element, Event, MouseEvent}; +use web_sys::{Document, DragEvent, Element, Event, MouseEvent}; pub(crate) struct WebEventConverter; @@ -529,17 +529,16 @@ impl HasFileData for WebDragData { #[cfg(not(feature = "file_engine"))] let files = None; #[cfg(feature = "file_engine")] - let files = self - .element - .dyn_ref() - .and_then(|input: &web_sys::HtmlInputElement| { - input.files().and_then(|files| { + let files = self.raw.dyn_ref::().and_then(|drag_event| { + drag_event.data_transfer().and_then(|dt| { + dt.files().and_then(|files| { #[allow(clippy::arc_with_non_send_sync)] crate::file_engine::WebFileEngine::new(files).map(|f| { std::sync::Arc::new(f) as std::sync::Arc }) }) - }); + }) + }); files }