canonrs-server 0.1.0

CanonRS server-side rendering support
#![allow(unreachable_pub, dead_code)]

use leptos::prelude::*;
use canonrs_core::meta::{ActivityState, DisabledState};
use canonrs_core::primitives::{
    PaginationPrimitive, PaginationContentPrimitive, PaginationItemPrimitive,
    PaginationLinkPrimitive, PaginationPreviousPrimitive, PaginationNextPrimitive,
    PaginationEllipsisPrimitive,
};

#[component]
pub fn Pagination(
    children: Children,
    #[prop(default = 1usize)] current_page: usize,
    #[prop(default = 1usize)] total_pages: usize,
    #[prop(into, default = String::new())] class: String,
) -> impl IntoView {
    view! {
        <PaginationPrimitive current_page=current_page total_pages=total_pages class=class>
            {children()}
        </PaginationPrimitive>
    }
}

#[component]
pub fn PaginationContent(
    children: Children,
    #[prop(into, default = String::new())] class: String,
) -> impl IntoView {
    view! {
        <PaginationContentPrimitive class=class>
            {children()}
        </PaginationContentPrimitive>
    }
}

#[component]
pub fn PaginationItem(
    children: Children,
    #[prop(into, default = String::new())] class: String,
) -> impl IntoView {
    view! {
        <PaginationItemPrimitive class=class>
            {children()}
        </PaginationItemPrimitive>
    }
}

#[component]
pub fn PaginationLink(
    children: Children,
    #[prop(into, default = String::new())] href: String,
    #[prop(default = ActivityState::Inactive)] state: ActivityState,
    #[prop(default = 0usize)] page: usize,
    #[prop(into, default = String::new())] class: String,
) -> impl IntoView {
    view! {
        <PaginationLinkPrimitive href=href state=state page=page class=class>
            {children()}
        </PaginationLinkPrimitive>
    }
}

#[component]
pub fn PaginationPrevious(
    children: Children,
    #[prop(into, default = String::new())] href: String,
    #[prop(default = DisabledState::Enabled)] disabled: DisabledState,
    #[prop(into, default = String::new())] class: String,
) -> impl IntoView {
    view! {
        <PaginationPreviousPrimitive href=href disabled=disabled class=class>
            {children()}
        </PaginationPreviousPrimitive>
    }
}

#[component]
pub fn PaginationNext(
    children: Children,
    #[prop(into, default = String::new())] href: String,
    #[prop(default = DisabledState::Enabled)] disabled: DisabledState,
    #[prop(into, default = String::new())] class: String,
) -> impl IntoView {
    view! {
        <PaginationNextPrimitive href=href disabled=disabled class=class>
            {children()}
        </PaginationNextPrimitive>
    }
}

#[component]
pub fn PaginationEllipsis(
    #[prop(into, default = String::new())] class: String,
) -> impl IntoView {
    view! {
        <PaginationEllipsisPrimitive class=class />
    }
}