From a42ed7d445667d741c2c44c86812b5cee42eccb9 Mon Sep 17 00:00:00 2001 From: Evan Almloff Date: Fri, 23 Dec 2022 15:08:44 -0600 Subject: [PATCH] create hot-reload-context flag --- packages/html/Cargo.toml | 3 ++- packages/html/src/elements.rs | 7 +++++++ packages/html/src/global_attributes.rs | 2 ++ packages/html/src/lib.rs | 1 + 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/html/Cargo.toml b/packages/html/Cargo.toml index 0e06723ea..de5db6645 100644 --- a/packages/html/Cargo.toml +++ b/packages/html/Cargo.toml @@ -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"] \ No newline at end of file diff --git a/packages/html/src/elements.rs b/packages/html/src/elements.rs index 2e0000693..931bc3d60 100644 --- a/packages/html/src/elements.rs +++ b/packages/html/src/elements.rs @@ -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>)> { $( diff --git a/packages/html/src/global_attributes.rs b/packages/html/src/global_attributes.rs index cd4e8f44a..b754faa2c 100644 --- a/packages/html/src/global_attributes.rs +++ b/packages/html/src/global_attributes.rs @@ -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! { diff --git a/packages/html/src/lib.rs b/packages/html/src/lib.rs index 7de26becc..55e2e3f30 100644 --- a/packages/html/src/lib.rs +++ b/packages/html/src/lib.rs @@ -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;