mirror of
https://github.com/adoyle0/leptos-use.git
synced 2025-03-13 01:09:48 -04:00
fixed breakpoints' current() method
This commit is contained in:
parent
6995c684f8
commit
19da9bf784
1 changed files with 17 additions and 5 deletions
|
@ -251,15 +251,27 @@ impl<K: Eq + Hash + Debug + Clone> UseBreakpointsReturn<K> {
|
|||
|
||||
/// Reactive Vec of all breakpoints that fulfill `[screen size]` >= `key`
|
||||
pub fn current(&self) -> Signal<Vec<K>> {
|
||||
let this = self.clone();
|
||||
let breakpoints = self.breakpoints.clone();
|
||||
let keys: Vec<_> = breakpoints.keys().cloned().collect();
|
||||
|
||||
Signal::derive(move || {
|
||||
this.breakpoints
|
||||
.keys()
|
||||
.filter(|k| this.ge((**k).clone()).get())
|
||||
let ge = move |key: &K| {
|
||||
let value = breakpoints
|
||||
.get(key)
|
||||
.expect("only used with keys() from the HashMap");
|
||||
|
||||
use_media_query(format_media_query!("min", =, value))
|
||||
};
|
||||
|
||||
let signals: Vec<_> = keys.iter().map(ge.clone()).collect();
|
||||
|
||||
create_memo(move |_| {
|
||||
keys.iter()
|
||||
.cloned()
|
||||
.zip(signals.iter().cloned())
|
||||
.filter_map(|(key, signal)| signal.get().then_some(key))
|
||||
.collect::<Vec<_>>()
|
||||
})
|
||||
.into()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue