use dioxus_core::ElementId;
use dioxus_html::{
geometry::{PixelsRect, PixelsSize, PixelsVector2D},
MountedResult, RenderedElementBacking,
};
use crate::query::QueryEngine;
/// A mounted element passed to onmounted events
#[derive(Clone)]
pub struct LiveviewElement {
id: ElementId,
query: QueryEngine,
}
impl LiveviewElement {
pub(crate) fn new(id: ElementId, query: QueryEngine) -> Self {
Self { id, query }
}
}
macro_rules! scripted_getter {
($meth_name:ident, $script:literal, $output_type:path) => {
fn $meth_name(
&self,
) -> std::pin::Pin<
Box>>,
> {
let script = format!($script, id = self.id.0);
let fut = self
.query
.new_query::