forked from yewstack/yew
-
Notifications
You must be signed in to change notification settings - Fork 0
/
filter.rs
36 lines (31 loc) · 767 Bytes
/
filter.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
use crate::state::Filter as FilterEnum;
use yew::prelude::*;
#[derive(PartialEq, Properties)]
pub struct FilterProps {
pub filter: FilterEnum,
pub selected: bool,
pub onset_filter: Callback<FilterEnum>,
}
#[function_component]
pub fn Filter(props: &FilterProps) -> Html {
let filter = props.filter;
let cls = if props.selected {
"selected"
} else {
"not-selected"
};
let onset_filter = {
let onset_filter = props.onset_filter.clone();
move |_| onset_filter.emit(filter)
};
html! {
<li>
<a class={cls}
href={props.filter.as_href()}
onclick={onset_filter}
>
{ props.filter }
</a>
</li>
}
}