1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// Copyright © 2020 Lukas Wagner

//! Seed integration module.
//! The user doesn't need to do anything but to add a style into a
//! seed component.

#[cfg(target_arch = "wasm32")]
extern crate seed;

#[cfg(target_arch = "wasm32")]
use super::super::style::Style;

#[cfg(target_arch = "wasm32")]
use seed::virtual_dom::{At, AtValue, Attrs, El, UpdateEl};

#[cfg(target_arch = "wasm32")]
impl<Ms> UpdateEl<El<Ms>> for Style {
    fn update(self, el: &mut El<Ms>) {
        let mut new_attrs = Attrs::empty();
        new_attrs.add(At::Class, self);
        el.attrs.merge(new_attrs);
    }
}

// #[cfg(target_arch = "wasm32")]
// impl From<Style> for AtValue {
//     fn from(item: Style) -> Self {
//         AtValue::Some(item.class_name.clone())
//     }
// }

// this is going to be needed for Seed v0.7.0
// #[cfg(target_arch = "wasm32")]
// use seed::virtual_dom::ToClasses;

// #[cfg(target_arch = "wasm32")]
// impl ToClasses for Style {
//     fn to_classes(self) -> Option<Vec<String>> {
//         let mut classes = Vec::new();
//         classes.push(self.class_name.clone());
//         Some(classes)
//     }
// }