1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
use super::Fallback;
use leptos::*;

#[component]
pub fn OptionComp<T, CF, IV>(
    value: Option<T>,
    children: CF,
    #[prop(optional)] fallback: Option<Fallback>,
) -> impl IntoView
where
    CF: FnOnce(T) -> IV + 'static,
    IV: IntoView,
{
    if let Some(value) = value {
        children(value).into_view()
    } else if let Some(fallback) = fallback {
        (fallback.children)().into_view()
    } else {
        ().into_view()
    }
}