wasm_react/hooks/
use_context.rs1use std::{rc::Rc, thread::LocalKey};
2use wasm_bindgen::UnwrapThrowExt;
3
4use crate::{react_bindings, Context};
5
6pub fn use_context<T>(context: &'static LocalKey<Context<T>>) -> Rc<T> {
10 let mut result = None;
11
12 context.with(|context| {
13 react_bindings::use_rust_context(
14 context.as_ref(),
15 &mut |ref_container_value| {
16 result = Some(
17 ref_container_value
18 .value::<T>()
19 .expect_throw("mismatched context type"),
20 );
21 },
22 );
23 });
24
25 result.expect_throw("callback was not called")
26}