wasm_react/react_bindings/
mod.rs1use crate::{
2 hooks::{RefContainerValue, TmpRef},
3 ComponentWrapper, MemoComponentWrapper,
4};
5use js_sys::{Array, Function};
6use wasm_bindgen::prelude::*;
7
8#[wasm_bindgen(module = "/src/react_bindings/react-bindings.js")]
9extern "C" {
10 #[wasm_bindgen(js_name = useReact)]
11 pub fn use_react(value: &JsValue);
12
13 #[wasm_bindgen(js_name = createElement)]
14 pub fn create_element(
15 typ: &JsValue,
16 props: &JsValue,
17 children: &JsValue,
18 ) -> JsValue;
19
20 #[wasm_bindgen(js_name = createRustComponent)]
21 pub fn create_rust_component(
22 name: &str,
23 key: &JsValue,
24 component: ComponentWrapper,
25 ) -> JsValue;
26
27 #[wasm_bindgen(js_name = createRustMemoComponent)]
28 pub fn create_rust_memo_component(
29 name: &str,
30 key: &JsValue,
31 component: MemoComponentWrapper,
32 ) -> JsValue;
33
34 #[wasm_bindgen(js_name = useRustRef)]
35 pub fn use_rust_ref(
36 create: &JsValue,
37 callback: &mut dyn FnMut(&RefContainerValue),
38 );
39
40 #[wasm_bindgen(js_name = useRustTmpRefs)]
41 pub fn use_rust_tmp_refs();
42
43 #[wasm_bindgen(js_name = useRustTmpRef)]
44 pub fn use_rust_tmp_ref(value: TmpRef, callback: &mut dyn FnMut(&TmpRef));
45
46 #[wasm_bindgen(js_name = useRustState)]
47 pub fn use_rust_state() -> Function;
48
49 #[wasm_bindgen(js_name = useRustEffect)]
50 pub fn use_rust_effect(effect: &JsValue, dep: u8);
51
52 #[wasm_bindgen(js_name = useRustLayoutEffect)]
53 pub fn use_rust_layout_effect(effect: &JsValue, dep: u8);
54
55 #[wasm_bindgen(js_name = useRustContext)]
56 pub fn use_rust_context(
57 context: &JsValue,
58 callback: &mut dyn FnMut(&RefContainerValue),
59 );
60
61 #[wasm_bindgen(js_namespace = React, js_name = Fragment)]
64 pub static FRAGMENT: JsValue;
65
66 #[wasm_bindgen(js_namespace = React, js_name = Suspense)]
67 pub static SUSPENSE: JsValue;
68
69 #[wasm_bindgen(js_namespace = React, js_name = useRef)]
70 pub fn use_ref(init: &JsValue) -> JsValue;
71
72 #[wasm_bindgen(js_namespace = React, js_name = useId)]
73 pub fn use_id() -> String;
74
75 #[wasm_bindgen(js_namespace = React, js_name = useDeferredValue)]
76 pub fn use_deferred_value(value: u8) -> u8;
77
78 #[wasm_bindgen(js_namespace = React, js_name = useTransition)]
79 pub fn use_transition() -> Array;
80
81 #[wasm_bindgen(js_namespace = React, js_name = createContext)]
82 pub fn create_context(value: RefContainerValue) -> JsValue;
83}