#[cfg(feature = "sycamore")] use sycamore::prelude::*; use crate::{event::Event, user::User}; #[cfg(feature = "sycamore")] use crate::util::ContextOptions; #[cfg(feature = "sycamore")] #[derive(Clone, PartialEq, Default)] pub struct Users(pub RcSignal>); #[cfg(not(feature = "sycamore"))] #[derive(Clone, PartialEq, Default)] pub struct Users; #[cfg(feature = "sycamore")] impl Users { pub fn get(&self) -> &RcSignal> { &self.0 } } #[cfg(feature = "sycamore")] impl ContextOptions for Users { fn options<'a>(&'a self, cx: Scope<'a>) -> &'a ReadSignal> { self.get() .map(cx, |v| v.iter().map(|u| u.name.clone()).collect()) } } #[cfg(feature = "sycamore")] #[derive(Clone, PartialEq, Default)] pub struct Events(pub RcSignal>); #[cfg(not(feature = "sycamore"))] #[derive(Clone, PartialEq, Default)] pub struct Events; #[cfg(feature = "sycamore")] impl Events { pub fn get(&self) -> &RcSignal> { &self.0 } } #[cfg(feature = "sycamore")] impl ContextOptions for Events { fn options<'a>(&'a self, cx: Scope<'a>) -> &'a ReadSignal> { self.get() .map(cx, |v| v.iter().map(|u| u.name.clone()).collect()) } }