use super::{Behavior, marker};
use crate::markup::{Attributes, common};
#[derive(Debug, Clone, Default, PartialEq, Eq)]
#[must_use]
pub struct Confirm {
message: Option<String>,
extra: Attributes,
}
impl Confirm {
pub fn new(message: impl Into<String>) -> Self {
Self {
message: Some(message.into()),
extra: Vec::new(),
}
}
#[must_use]
pub fn attributes(&self) -> Attributes {
let mut attributes = vec![marker(Behavior::Confirm)];
if let Some(message) = &self.message {
attributes.push(("data-vanilla-confirm", message.clone()));
}
attributes.extend(self.extra.iter().cloned());
attributes
}
}
common!(Confirm, wrap);