소스 검색

create hot-reload-context flag

Evan Almloff 2 년 전
부모
커밋
a42ed7d445
4개의 변경된 파일12개의 추가작업 그리고 1개의 파일을 삭제
  1. 2 1
      packages/html/Cargo.toml
  2. 7 0
      packages/html/src/elements.rs
  3. 2 0
      packages/html/src/global_attributes.rs
  4. 1 0
      packages/html/src/lib.rs

+ 2 - 1
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"]

+ 7 - 0
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>)> {
                 $(

+ 2 - 0
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! {

+ 1 - 0
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;