leptos-leaflet 0.10.2

Leaflet components to use in Leptos.
Documentation
use crate::leaflet_event;
use leaflet::Event;
use std::cell::RefCell;
use std::rc::Rc;

#[derive(Clone, Default)]
pub struct MoveEvents {
    inner: Rc<RefCell<InnerMoveEvents>>,
}

#[derive(Default)]
struct InnerMoveEvents {
    on_move: Option<Box<dyn Fn(Event)>>,
}

impl MoveEvents {
    pub fn new() -> Self {
        Self::default()
    }

    pub fn setup(&self, evented: &impl leaflet::MoveEvents) {
        if let Some(on_move) = self.inner.borrow_mut().on_move.take() {
            evented.on_move(on_move);
        }
    }
}

leaflet_event!(MoveEvents, on_move, Event);