use crate::{register, OrDefaultNonce};
use leptos::{
component, oco::Oco, prelude::*, tachys::html::element::script, IntoView,
};
#[component]
pub fn Script(
#[prop(optional, into)]
id: Option<Oco<'static, str>>,
#[prop(optional, into)]
async_: Option<Oco<'static, str>>,
#[prop(optional, into)]
crossorigin: Option<Oco<'static, str>>,
#[prop(optional, into)]
defer: Option<Oco<'static, str>>,
#[prop(optional, into)]
fetchpriority: Option<Oco<'static, str>>,
#[prop(optional, into)]
integrity: Option<Oco<'static, str>>,
#[prop(optional, into)]
nomodule: Option<Oco<'static, str>>,
#[prop(optional, into)]
nonce: Option<Oco<'static, str>>,
#[prop(optional, into)]
referrerpolicy: Option<Oco<'static, str>>,
#[prop(optional, into)]
src: Option<Oco<'static, str>>,
#[prop(optional, into)]
type_: Option<Oco<'static, str>>,
#[prop(optional, into)]
blocking: Option<Oco<'static, str>>,
#[prop(optional)]
children: Option<Children>,
) -> impl IntoView {
register(
script()
.id(id)
.r#async(async_)
.crossorigin(crossorigin)
.defer(defer)
.fetchpriority(fetchpriority)
.integrity(integrity)
.nomodule(nomodule)
.nonce(nonce.or_default_nonce())
.referrerpolicy(referrerpolicy)
.src(src)
.r#type(type_)
.blocking(blocking)
.child(children.map(|c| c())),
)
}