leptos-bevy-canvas 0.3.0

Embed an idiomatic Bevy app inside your Leptos app with ease.
Documentation
use crossbeam_channel::Receiver;
use leptos::prelude::*;
use leptos_use::use_raf_fn;

pub(crate) fn init_rw_signal_from_receiver<E>(rx: &Receiver<E>) -> RwSignal<Option<E>>
where
    E: Send + Sync + 'static,
{
    let signal = RwSignal::new(None);

    use_raf_fn({
        let rx = rx.clone();

        move |_| {
            for event in rx.try_iter() {
                signal.set(Some(event));
            }
        }
    });

    signal
}