diff --git a/examples/basic/src/app.rs b/examples/basic/src/app.rs index 13c45eb..05227f6 100644 --- a/examples/basic/src/app.rs +++ b/examples/basic/src/app.rs @@ -31,6 +31,9 @@ pub fn App(cx: Scope) -> impl IntoView { } /> + + } /> diff --git a/examples/basic/src/pages/components.rs b/examples/basic/src/pages/components.rs index c429c10..572eb76 100644 --- a/examples/basic/src/pages/components.rs +++ b/examples/basic/src/pages/components.rs @@ -37,6 +37,7 @@ pub fn ComponentsPage(cx: Scope) -> impl IntoView { +
diff --git a/examples/basic/src/pages/image/mod.rs b/examples/basic/src/pages/image/mod.rs new file mode 100644 index 0000000..f98e30a --- /dev/null +++ b/examples/basic/src/pages/image/mod.rs @@ -0,0 +1,12 @@ +use leptos::*; +use melt_ui::*; + +#[component] +pub fn ImagePage(cx: Scope) -> impl IntoView { + view! { cx, + <> + + + + } +} \ No newline at end of file diff --git a/examples/basic/src/pages/mod.rs b/examples/basic/src/pages/mod.rs index c240f76..3279db1 100644 --- a/examples/basic/src/pages/mod.rs +++ b/examples/basic/src/pages/mod.rs @@ -1,5 +1,6 @@ mod components; mod home; +mod image; mod input; mod menu; mod mobile; @@ -8,6 +9,7 @@ mod tabbar; pub use components::*; pub use home::*; +pub use image::*; pub use input::*; pub use menu::*; pub use mobile::*; diff --git a/src/image/mod.rs b/src/image/mod.rs new file mode 100644 index 0000000..c6cef32 --- /dev/null +++ b/src/image/mod.rs @@ -0,0 +1,39 @@ + +use leptos::*; + +#[component] +pub fn Image( + cx: Scope, + #[prop(optional, into)] src: MaybeSignal, + #[prop(optional, into)] alt: MaybeSignal, + #[prop(optional, into)] width: MaybeSignal, + #[prop(optional, into)] height: MaybeSignal, + #[prop(optional, into)] border_radius: MaybeSignal, + #[prop(optional, into)] object_fit: MaybeSignal, +) -> impl IntoView { + + let style = move || { + let mut style = String::new(); + + let width = width.get(); + if !width.is_empty() { + style.push_str(&format!("width: {width};")) + } + + let height = height.get(); + if !height.is_empty() { + style.push_str(&format!("height: {height};")) + } + + let border_radius = border_radius.get(); + if !border_radius.is_empty() { + style.push_str(&format!("border-radius: {border_radius};")) + } + + style + }; + view! { + cx, + move + } +} \ No newline at end of file diff --git a/src/lib.rs b/src/lib.rs index e51a366..620cc65 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -2,6 +2,7 @@ mod button; mod card; mod checkbox; mod components; +mod image; mod input; mod menu; pub mod mobile; @@ -17,6 +18,7 @@ mod wave; pub use button::*; pub use checkbox::*; +pub use image::*; pub use input::*; pub use menu::*; pub use modal::*;