Minor tweaks

This commit is contained in:
Pauan 2019-07-23 07:25:27 +02:00
parent 6ab63f0ae6
commit 094ad20b51
3 changed files with 11 additions and 10 deletions

View File

@ -18,7 +18,8 @@ pin-utils = "0.1.0-alpha.4"
futures-channel-preview = "0.3.0-alpha.16" futures-channel-preview = "0.3.0-alpha.16"
futures-util-preview = "0.3.0-alpha.16" futures-util-preview = "0.3.0-alpha.16"
futures-signals = "0.3.5" futures-signals = "0.3.5"
wasm-bindgen = "0.2.45" # TODO should this enable interning ?
wasm-bindgen = { version = "0.2.45", features = ["enable-interning"] }
js-sys = "0.3.22" js-sys = "0.3.22"
[dependencies.wasm-bindgen-futures] [dependencies.wasm-bindgen-futures]

View File

@ -1,7 +1,7 @@
use wasm_bindgen::prelude::*; use wasm_bindgen::prelude::*;
use wasm_bindgen::{JsCast, intern}; use wasm_bindgen::{JsCast, intern};
use js_sys::Function; use js_sys::Function;
use web_sys::{HtmlElement, Element, Node, Window, History, Document, Text, Comment, CssStyleSheet, CssStyleDeclaration, HtmlStyleElement, CssStyleRule, EventTarget}; use web_sys::{HtmlElement, Element, Node, Window, History, Document, Text, Comment, DomTokenList, CssStyleSheet, CssStyleDeclaration, HtmlStyleElement, CssStyleRule, EventTarget};
#[wasm_bindgen(inline_js = " #[wasm_bindgen(inline_js = "
@ -93,7 +93,7 @@ pub(crate) fn make_style_rule(sheet: &CssStyleSheet, selector: &str) -> CssStyle
let rules = sheet.css_rules().unwrap_throw(); let rules = sheet.css_rules().unwrap_throw();
let length = rules.length(); let length = rules.length();
// TODO don't return u32 ? // TODO don't return u32 ?
sheet.insert_rule_with_index(&format!("{} {{}}", selector), length).unwrap_throw(); sheet.insert_rule_with_index(&format!("{}{{}}", selector), length).unwrap_throw();
// TODO use dyn_into ? // TODO use dyn_into ?
rules.get(length).unwrap_throw().unchecked_into() rules.get(length).unwrap_throw().unchecked_into()
} }
@ -141,12 +141,12 @@ pub(crate) fn remove_attribute_ns(elem: &Element, namespace: &str, key: &str) {
elem.remove_attribute_ns(Some(namespace), key).unwrap_throw(); elem.remove_attribute_ns(Some(namespace), key).unwrap_throw();
} }
pub(crate) fn add_class(elem: &Element, value: &str) { pub(crate) fn add_class(classes: &DomTokenList, value: &str) {
elem.class_list().add_1(value).unwrap_throw(); classes.add_1(value).unwrap_throw();
} }
pub(crate) fn remove_class(elem: &Element, value: &str) { pub(crate) fn remove_class(classes: &DomTokenList, value: &str) {
elem.class_list().remove_1(value).unwrap_throw(); classes.remove_1(value).unwrap_throw();
} }
pub(crate) fn set_text_content(elem: &Node, value: &str) { pub(crate) fn set_text_content(elem: &Node, value: &str) {

View File

@ -619,10 +619,10 @@ impl<A> DomBuilder<A> where A: AsRef<Element> {
#[inline] #[inline]
pub fn class<B>(self, name: B) -> Self where B: MultiStr { pub fn class<B>(self, name: B) -> Self where B: MultiStr {
let element = self.element.as_ref(); let classes = self.element.as_ref().class_list();
name.each(|name| { name.each(|name| {
bindings::add_class(element, intern(name)); bindings::add_class(&classes, intern(name));
}); });
self self
@ -723,7 +723,7 @@ impl<A> DomBuilder<A> where A: AsRef<Element> {
where B: MultiStr + 'static, where B: MultiStr + 'static,
C: Signal<Item = bool> + 'static { C: Signal<Item = bool> + 'static {
let element = self.element.as_ref().clone(); let element = self.element.as_ref().class_list();
let mut is_set = false; let mut is_set = false;