leptos_bootstrap/v5/
modal.rs1use leptos::prelude::*;
2
3#[component]
4pub fn Modal<'a>(#[prop(optional, into)] class: &'a str, children: Children) -> impl IntoView {
5 let class = format!("modal {}", class);
6 view! {
7 <div class=class tabindex="-1">
8 <div class="modal-dialog">
9 <div class="modal-content">{children()}</div>
10 </div>
11 </div>
12 }
13}
14
15#[component]
16pub fn ModalHeader<'a>(
17 #[prop(optional, into)] class: &'a str,
18 children: Children,
19) -> impl IntoView {
20 let class = format!("modal-header {}", class);
21 view! {
22 <div class=class>
23 <h5 class="modal-title">{children()}</h5>
24 <button
25 type="button"
26 class="btn-close"
27 data-bs-dismiss="modal"
28 aria-label="Close"
29 ></button>
30 </div>
31 }
32}
33
34#[component]
35pub fn ModalBody<'a>(#[prop(optional, into)] class: &'a str, children: Children) -> impl IntoView {
36 let class = format!("modal-body {}", class);
37 view! { <div class=class>{children()}</div> }
38}
39
40#[component]
41pub fn ModalFooter<'a>(
42 #[prop(optional, into)] class: &'a str,
43 children: Children,
44) -> impl IntoView {
45 let class = format!("modal-footer {}", class);
46 view! { <div class=class>{children()}</div> }
47}