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-util-preview = "0.3.0-alpha.16"
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"
[dependencies.wasm-bindgen-futures]

View File

@ -1,7 +1,7 @@
use wasm_bindgen::prelude::*;
use wasm_bindgen::{JsCast, intern};
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 = "
@ -93,7 +93,7 @@ pub(crate) fn make_style_rule(sheet: &CssStyleSheet, selector: &str) -> CssStyle
let rules = sheet.css_rules().unwrap_throw();
let length = rules.length();
// 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 ?
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();
}
pub(crate) fn add_class(elem: &Element, value: &str) {
elem.class_list().add_1(value).unwrap_throw();
pub(crate) fn add_class(classes: &DomTokenList, value: &str) {
classes.add_1(value).unwrap_throw();
}
pub(crate) fn remove_class(elem: &Element, value: &str) {
elem.class_list().remove_1(value).unwrap_throw();
pub(crate) fn remove_class(classes: &DomTokenList, value: &str) {
classes.remove_1(value).unwrap_throw();
}
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]
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| {
bindings::add_class(element, intern(name));
bindings::add_class(&classes, intern(name));
});
self
@ -723,7 +723,7 @@ impl<A> DomBuilder<A> where A: AsRef<Element> {
where B: MultiStr + '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;