diff --git a/app-proto/src/outline.rs b/app-proto/src/outline.rs index 2893b6d..97d6ac2 100644 --- a/app-proto/src/outline.rs +++ b/app-proto/src/outline.rs @@ -208,19 +208,9 @@ fn ElementOutlineItem(key: ElementKey, element: Rc) -> View { div( class="element", on:click={ + let state_clone = state.clone(); move |event: MouseEvent| { - if event.shift_key() { - state.selection.update(|sel| { - if !sel.remove(&key) { - sel.insert(key); - } - }); - } else { - state.selection.update(|sel| { - sel.clear(); - sel.insert(key); - }); - } + state_clone.select(key, event.shift_key()); event.stop_propagation(); event.prevent_default(); }