Skip to content

Commit cb3fbb6

Browse files
committed
feat: helper method create_fragment
1 parent fdbb8a8 commit cb3fbb6

File tree

6 files changed

+50
-0
lines changed

6 files changed

+50
-0
lines changed

helpers/helpers-import.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import React from "react";
2+
3+
export function create_fragment(...args) {
4+
React.createElement(React.Fragment, ...args);
5+
}

helpers/helpers.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export function create_fragment(...args) {
2+
React.createElement(React.Fragment, ...args);
3+
}

helpers/react-import.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,5 @@
11
export * as React from "react";
2+
3+
export function create_fragment(...args) {
4+
React.createElement(React.Fragment, ...args);
5+
}

src/helpers.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
use wasm_bindgen::prelude::*;
2+
3+
crate::macro_import::wasm_bindgen_helpers! {
4+
#[wasm_bindgen(js_name = create_fragment)]
5+
pub fn create_fragment_no_props() -> crate::Element;
6+
7+
#[wasm_bindgen(js_name = create_fragment)]
8+
pub fn create_fragment_no_children(props: &JsValue) -> crate::Element;
9+
10+
#[wasm_bindgen(variadic)]
11+
pub fn create_fragment(
12+
props: &JsValue,
13+
children: &js_sys::Array,
14+
) -> crate::Element;
15+
}

src/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
mod element;
2+
mod helpers;
23
mod macro_import;
34
mod use_effect;
45
mod use_ref;
56
mod use_state;
67

78
pub use element::*;
9+
pub use helpers::*;
810
pub use use_effect::*;
911
pub use use_ref::*;
1012
pub use use_state::*;

src/macro_import.rs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,25 @@ macro_rules! wasm_bindgen_react {
1818
};
1919
}
2020

21+
#[cfg(feature = "import-react")]
22+
macro_rules! wasm_bindgen_helpers {
23+
($($b:item)+) => {
24+
#[wasm_bindgen(module = "/helpers/helpers-import.js")]
25+
extern "C" {
26+
$($b)+
27+
}
28+
};
29+
}
30+
31+
#[cfg(not(feature = "import-react"))]
32+
macro_rules! wasm_bindgen_helpers {
33+
($($b:item)+) => {
34+
#[wasm_bindgen(module = "/helpers/helpers.js")]
35+
extern "C" {
36+
$($b)+
37+
}
38+
};
39+
}
40+
41+
pub(crate) use wasm_bindgen_helpers;
2142
pub(crate) use wasm_bindgen_react;

0 commit comments

Comments
 (0)