leptos_leaflet/components/events/
move_events.rs

1use crate::leaflet_event;
2use leaflet::Event;
3use std::cell::RefCell;
4use std::rc::Rc;
5
6#[derive(Clone, Default)]
7pub struct MoveEvents {
8    inner: Rc<RefCell<InnerMoveEvents>>,
9}
10
11#[derive(Default)]
12struct InnerMoveEvents {
13    on_move: Option<Box<dyn Fn(Event)>>,
14}
15
16impl MoveEvents {
17    pub fn new() -> Self {
18        Self::default()
19    }
20
21    pub fn setup(&self, evented: &impl leaflet::MoveEvents) {
22        if let Some(on_move) = self.inner.borrow_mut().on_move.take() {
23            evented.on_move(on_move);
24        }
25    }
26}
27
28leaflet_event!(MoveEvents, on_move, Event);