mirror of
https://github.com/adoyle0/thaw.git
synced 2025-02-08 19:03:09 -05:00
fix: upload component click error
This commit is contained in:
parent
34dfe2e553
commit
012646f955
1 changed files with 18 additions and 8 deletions
|
@ -1,7 +1,7 @@
|
||||||
mod theme;
|
mod theme;
|
||||||
mod upload_dragger;
|
mod upload_dragger;
|
||||||
|
|
||||||
use crate::mount_style;
|
use crate::{mount_style, utils::add_event_listener};
|
||||||
use leptos::*;
|
use leptos::*;
|
||||||
pub use theme::UploadTheme;
|
pub use theme::UploadTheme;
|
||||||
pub use upload_dragger::UploadDragger;
|
pub use upload_dragger::UploadDragger;
|
||||||
|
@ -16,22 +16,32 @@ pub fn Upload(
|
||||||
) -> impl IntoView {
|
) -> impl IntoView {
|
||||||
mount_style("upload", include_str!("./upload.css"));
|
mount_style("upload", include_str!("./upload.css"));
|
||||||
|
|
||||||
|
let input_ref = create_node_ref::<html::Input>();
|
||||||
|
let trigger_ref = create_node_ref::<html::Div>();
|
||||||
|
|
||||||
|
trigger_ref.on_load(move |trigger_ref| {
|
||||||
|
let handle = add_event_listener(trigger_ref.into_any(), ev::click, move |_| {
|
||||||
|
if let Some(input_ref) = input_ref.get_untracked() {
|
||||||
|
input_ref.click();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
on_cleanup(move || {
|
||||||
|
handle.remove();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
let on_file_addition = move |files: FileList| {
|
let on_file_addition = move |files: FileList| {
|
||||||
if let Some(custom_request) = custom_request {
|
if let Some(custom_request) = custom_request {
|
||||||
custom_request.call(files);
|
custom_request.call(files);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
let input_ref = create_node_ref::<html::Input>();
|
|
||||||
let on_change = move |_| {
|
let on_change = move |_| {
|
||||||
if let Some(input_ref) = input_ref.get_untracked() {
|
if let Some(input_ref) = input_ref.get_untracked() {
|
||||||
if let Some(files) = input_ref.files() {
|
if let Some(files) = input_ref.files() {
|
||||||
on_file_addition(files);
|
on_file_addition(files);
|
||||||
}
|
}
|
||||||
}
|
input_ref.set_value("");
|
||||||
};
|
|
||||||
let on_click = move |_| {
|
|
||||||
if let Some(input_ref) = input_ref.get_untracked() {
|
|
||||||
input_ref.click();
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -72,7 +82,7 @@ pub fn Upload(
|
||||||
/>
|
/>
|
||||||
<div
|
<div
|
||||||
class="thaw-upload__trigger"
|
class="thaw-upload__trigger"
|
||||||
on:click=on_click
|
ref=trigger_ref
|
||||||
on:drop=on_trigger_drop
|
on:drop=on_trigger_drop
|
||||||
on:dragover=on_trigger_dragover
|
on:dragover=on_trigger_dragover
|
||||||
on:dragenter=on_trigger_dragenter
|
on:dragenter=on_trigger_dragenter
|
||||||
|
|
Loading…
Add table
Reference in a new issue