leptos_three 0.0.0

A Leptos library for Three.js
Documentation
use crate::providers;
use leptos::*;
use wasm_bindgen::prelude::*;

#[wasm_bindgen(module = "/src/material.js")]
extern "C" {
    fn attachMaterial(object3d: JsValue, r: f64, g: f64, b: f64) -> JsValue;
}

#[component]
pub fn Material(cx: Scope, #[prop(default = [1.0,1.0,1.0])] color: [f64; 3]) -> impl IntoView {
    let object3d = use_context::<providers::Object3DContext>(cx).unwrap().0;

    create_effect(cx, move |_| {
        if let Some(o) = object3d.get() {
            attachMaterial(o, color[0], color[1], color[2]);
        }
    });

    view! { cx,
        <></>
    }
}