Skip to main content

yggdrasil/components/skeletons/
mcp_skeleton.rs

1//! 后台 MCP 接入骨架屏
2//!
3//! 与 MCP 页同一版式:标题行、一句话接入卡片与令牌表格。
4
5use leptos::prelude::*;
6
7use crate::components::skeletons::atoms::{AdminPageHeadSkeleton, SkeletonBox};
8
9/// 后台 MCP 接入骨架屏组件。
10#[component]
11pub fn McpSkeleton() -> impl IntoView {
12    view! {
13        <div class="admin-mcp" aria-hidden="true">
14            <AdminPageHeadSkeleton
15                title_width="w-28"
16                subtitle_width="w-96 max-w-full"
17                actions=|| view! { <SkeletonBox class="h-[34px] w-28 rounded-lg"/> }
18            />
19            <div class="admin-panel mcp-oneline">
20                <SkeletonBox class="h-4 w-24 rounded"/>
21                <SkeletonBox class="h-12 w-full rounded-lg mt-3"/>
22                <SkeletonBox class="h-8 w-48 rounded-lg mt-3"/>
23            </div>
24            <div class="mcp-tokens">
25                <SkeletonBox class="h-4 w-28 rounded mb-3"/>
26                <div class="admin-panel">
27                    {(0..3)
28                        .map(|_| {
29                            view! {
30                                <div class="mcp-skeleton-row">
31                                    <SkeletonBox class="h-4 w-40 rounded"/>
32                                    <SkeletonBox class="h-4 w-16 rounded"/>
33                                    <SkeletonBox class="h-4 w-24 rounded"/>
34                                </div>
35                            }
36                        })
37                        .collect_view()}
38                </div>
39            </div>
40        </div>
41    }
42}