use crate::options::SignOutOptions;
use dioxus::prelude::*;
#[component]
pub fn SignOutButton(
#[props(into)]
redirect_url: Option<String>,
#[props(into)]
session_id: Option<String>,
#[props(default = SignOutOptions::from_value(serde_json::Value::Null), into)]
options: SignOutOptions,
#[props(default)]
disabled: bool,
#[props(extends = GlobalAttributes, extends = button)]
attributes: Vec<Attribute>,
#[props(default, into)]
onclick: Callback<MouseEvent>,
#[props(default = rsx! { "Sign out" })]
children: Element,
) -> Element {
let options = options
.maybe_redirect_url(redirect_url)
.maybe_session_id(session_id)
.into_value();
let clerk = crate::use_clerk();
super::button_host::button_host(
super::button_host::ButtonChrome {
attributes,
disabled,
onclick,
children,
},
move || clerk.sign_out_with_options(options.clone()),
)
}