fix: update id prop in Chip to be unique
This commit is contained in:
1 parent
55e7fd5797
commit
a01a5a83d7
1 file changed
+10
-3
+10
-3
@@ -28,13 +28,20 @@ pub fn Chip(
|
|||||||
#[prop()] checked: Signal<bool>,
|
#[prop()] checked: Signal<bool>,
|
||||||
#[prop(optional)] disabled: RwSignal<bool>,
|
#[prop(optional)] disabled: RwSignal<bool>,
|
||||||
) -> impl IntoView {
|
) -> impl IntoView {
|
||||||
|
// Generate a unique id - ensure that the value doesn't contain spaces.
|
||||||
|
// Without this id, checkbox/radio inputs can interfere with each other.
|
||||||
|
let value_no_spaces = value.clone().chars()
|
||||||
|
.filter(|c| !c.is_whitespace())
|
||||||
|
.collect::<String>();
|
||||||
|
let id = format!("{}-{}", name.clone(), value_no_spaces);
|
||||||
|
|
||||||
view! {
|
view! {
|
||||||
<label for=value>
|
<label for=id>
|
||||||
<input
|
<input
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
class="relative peer shrink-0 hidden"
|
class="relative peer shrink-0 hidden"
|
||||||
name=name.clone()
|
name=name.clone()
|
||||||
id=value.clone()
|
id=id.clone()
|
||||||
prop:checked=checked
|
prop:checked=checked
|
||||||
on:change=move |_| on_change.run(())
|
on:change=move |_| on_change.run(())
|
||||||
disabled=disabled />
|
disabled=disabled />
|
||||||
|
|||||||
Reference in new issue
Block a user