From 012646f95585a730d4187665126defa16116bb70 Mon Sep 17 00:00:00 2001 From: luoxiao Date: Mon, 13 Nov 2023 11:13:11 +0800 Subject: [PATCH 1/2] fix: upload component click error --- src/upload/mod.rs | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/upload/mod.rs b/src/upload/mod.rs index 7de0690..52c5019 100644 --- a/src/upload/mod.rs +++ b/src/upload/mod.rs @@ -1,7 +1,7 @@ mod theme; mod upload_dragger; -use crate::mount_style; +use crate::{mount_style, utils::add_event_listener}; use leptos::*; pub use theme::UploadTheme; pub use upload_dragger::UploadDragger; @@ -16,22 +16,32 @@ pub fn Upload( ) -> impl IntoView { mount_style("upload", include_str!("./upload.css")); + let input_ref = create_node_ref::(); + let trigger_ref = create_node_ref::(); + + 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| { if let Some(custom_request) = custom_request { custom_request.call(files); } }; - let input_ref = create_node_ref::(); + let on_change = move |_| { if let Some(input_ref) = input_ref.get_untracked() { if let Some(files) = input_ref.files() { on_file_addition(files); } - } - }; - let on_click = move |_| { - if let Some(input_ref) = input_ref.get_untracked() { - input_ref.click(); + input_ref.set_value(""); } }; @@ -72,7 +82,7 @@ pub fn Upload( />
Date: Mon, 13 Nov 2023 11:14:49 +0800 Subject: [PATCH 2/2] fix: features tracing, GridItem span attribute conflict --- demo/src/pages/grid/mod.rs | 4 ++-- src/grid/grid_item.rs | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/demo/src/pages/grid/mod.rs b/demo/src/pages/grid/mod.rs index 8b308e9..4897b79 100644 --- a/demo/src/pages/grid/mod.rs +++ b/demo/src/pages/grid/mod.rs @@ -69,7 +69,7 @@ pub fn GridPage() -> impl IntoView { "7" "123" "123" - "1234" + "1234" "567" "567" @@ -85,7 +85,7 @@ pub fn GridPage() -> impl IntoView { "7" "123" "123" - "1234" + "1234" "567" "567" diff --git a/src/grid/grid_item.rs b/src/grid/grid_item.rs index 84e1df6..3fef57c 100644 --- a/src/grid/grid_item.rs +++ b/src/grid/grid_item.rs @@ -3,7 +3,7 @@ use leptos::*; #[component] pub fn GridItem( - #[prop(default = MaybeSignal::Static(1u16), into)] span: MaybeSignal, + #[prop(default = MaybeSignal::Static(1u16), into)] column: MaybeSignal, #[prop(optional, into)] offset: MaybeSignal, children: Children, ) -> impl IntoView { @@ -12,22 +12,22 @@ pub fn GridItem( let style = create_memo(move |_| { let mut style = String::new(); let offset = offset.get(); - let span = i32::from(span.get()); + let column = i32::from(column.get()); let x_gap = grid.x_gap.get(); if offset > 0 { style.push_str(&format!( "margin-left: calc((100% - {}px) / {} * {} + {}px);", - (span + offset - 1) * x_gap, - span + offset, + (column + offset - 1) * x_gap, + column + offset, offset, offset * x_gap )); } style.push_str(&format!( "grid-column: span {} / span {};", - span + offset, - span + offset + column + offset, + column + offset )); style