wasm-css 0.2.0

Ergonomic WASM CSS Framework
Documentation
// Authors: Robert Lopez

use super::Style;
use crate::error::{format_error, WasmCssError};
use web_sys::window;

impl Style {
    /// Delete `Style`, removing it from the DOM.
    ///
    /// Returns error if missing access to: `Head`, `Window`, `Document`.
    ///
    /// ---
    /// Example Usage:
    /// ```
    ///
    /// let mut style = style!("background-color: blue;")?;
    ///
    /// style.delete()?;
    /// ```
    pub fn delete(self) -> Result<(), WasmCssError> {
        let window = window().ok_or(format_error!("Failed to obtain Window object"))?;
        let document = window
            .document()
            .ok_or(format_error!("Failed to obtain Document object"))?;

        let head = document
            .head()
            .ok_or(format_error!("Failed to obtain HtmlHeadElement object"))?;

        if let Some(child) = document.get_element_by_id(&self.css_name) {
            head.remove_child(&child).map_err(|_| {
                format_error!("Failed to delete style Element from HtmlHeadElement")
            })?;
        }

        Ok(())
    }
}