create hot-reload-context flag

This commit is contained in:
Evan Almloff 2022-12-23 15:08:44 -06:00
parent 3165c90e9f
commit a42ed7d445
4 changed files with 12 additions and 1 deletions

View file

@ -12,7 +12,7 @@ keywords = ["dom", "ui", "gui", "react", "wasm"]
[dependencies]
dioxus-core = { path = "../core", version = "^0.2.1" }
dioxus-rsx = { path = "../rsx" }
dioxus-rsx = { path = "../rsx", optional = true }
serde = { version = "1", features = ["derive"], optional = true }
serde_repr = { version = "0.1", optional = true }
wasm-bindgen = { version = "0.2.79", optional = true }
@ -48,3 +48,4 @@ serde_json = "*"
default = ["serialize"]
serialize = ["serde", "serde_repr", "euclid/serde", "keyboard-types/serde", "dioxus-core/serialize"]
wasm-bind = ["web-sys", "wasm-bindgen"]
hot-reload-context = ["dioxus-rsx"]

View file

@ -1,6 +1,8 @@
#![allow(non_upper_case_globals)]
#[cfg(feature = "hot-reload-context")]
use crate::{map_global_attributes, map_svg_attributes};
use crate::{GlobalAttributes, SvgAttributes};
#[cfg(feature = "hot-reload-context")]
use dioxus_rsx::HotReloadingContext;
pub type AttributeDiscription = (&'static str, Option<&'static str>, bool);
@ -42,6 +44,7 @@ macro_rules! impl_attribute {
};
}
#[cfg(feature = "hot-reload-context")]
macro_rules! impl_attribute_match {
(
$attr:ident $fil:ident: $vil:ident (DEFAULT),
@ -134,6 +137,7 @@ macro_rules! impl_element {
}
}
#[cfg(feature = "hot-reload-context")]
macro_rules! impl_element_match {
(
$el:ident $name:ident None {
@ -160,6 +164,7 @@ macro_rules! impl_element_match {
};
}
#[cfg(feature = "hot-reload-context")]
macro_rules! impl_element_match_attributes {
(
$el:ident $attr:ident $name:ident None {
@ -206,8 +211,10 @@ macro_rules! builder_constructors {
};
)*
) => {
#[cfg(feature = "hot-reload-context")]
pub struct HtmlCtx;
#[cfg(feature = "hot-reload-context")]
impl HotReloadingContext for HtmlCtx {
fn map_attribute(element: &str, attribute: &str) -> Option<(&'static str, Option<&'static str>)> {
$(

View file

@ -44,6 +44,7 @@ macro_rules! trait_method {
};
}
#[cfg(feature = "hot-reload-context")]
macro_rules! trait_method_mapping {
(
$matching:ident;
@ -97,6 +98,7 @@ macro_rules! trait_methods {
)*
}
#[cfg(feature = "hot-reload-context")]
pub(crate) fn $fn(attr: &str) -> Option<(&'static str, Option<&'static str>)> {
$(
trait_method_mapping! {

View file

@ -14,6 +14,7 @@
//! Currently, we don't validate for structures, but do validate attributes.
mod elements;
#[cfg(feature = "hot-reload-context")]
pub use elements::HtmlCtx;
pub mod events;
pub mod geometry;