Minor tweaks
This commit is contained in:
parent
6ab63f0ae6
commit
094ad20b51
|
@ -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]
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue