diff --git a/app-proto/src/add_remove.rs b/app-proto/src/add_remove.rs index 9db281e..d135449 100644 --- a/app-proto/src/add_remove.rs +++ b/app-proto/src/add_remove.rs @@ -187,15 +187,15 @@ pub fn AddRemove() -> View { } ); let rep = create_signal(0.0); + let rep_valid = create_signal(false); let active = create_signal(true); state.assembly.insert_constraint(Constraint { args: args, rep: rep, rep_text: create_signal(String::new()), - rep_valid: create_signal(false), + rep_valid: rep_valid, active: active, }); - state.assembly.realize(); state.selection.update(|sel| sel.clear()); /* DEBUG */ @@ -213,15 +213,14 @@ pub fn AddRemove() -> View { } }); - // update the realization when the constraint is activated, - // or edited while active + // update the realization when the constraint becomes active + // and valid, or is edited while active and valid create_effect(move || { + console::log_1(&JsValue::from( + format!("Constraint ({}, {}) updated", args.0, args.1) + )); rep.track(); - console::log_2( - &JsValue::from("Lorentz product updated to"), - &JsValue::from(rep.get_untracked()) - ); - if active.get() { + if active.get() && rep_valid.get() { state.assembly.realize(); } });