Skip to main content

yggdrasil/components/skeletons/
profile_skeleton.rs

1//! 后台个人资料骨架屏
2//!
3//! 与个人资料页同一版式:个人信息、修改密码两个分区与退出登录行。
4
5use leptos::prelude::*;
6
7use crate::components::skeletons::atoms::SkeletonBox;
8
9/// 后台个人资料骨架屏组件。
10#[component]
11pub fn ProfileSkeleton() -> impl IntoView {
12    view! {
13        <div class="admin-profile-skeleton" aria-hidden="true">
14            {[4, 3]
15                .into_iter()
16                .map(|rows| {
17                    view! {
18                        <div class="admin-panel admin-profile-section">
19                            <div class="admin-profile-section-head">
20                                <SkeletonBox class="h-4 w-20 rounded"/>
21                                <SkeletonBox class="h-3 w-64 rounded mt-2"/>
22                            </div>
23                            <div class="admin-profile-rows">
24                                {(0..rows)
25                                    .map(|_| {
26                                        view! {
27                                            <div class="admin-profile-row">
28                                                <SkeletonBox class="h-3.5 w-16 rounded"/>
29                                                <SkeletonBox class="h-9 w-full rounded-lg"/>
30                                            </div>
31                                        }
32                                    })
33                                    .collect_view()}
34                            </div>
35                        </div>
36                    }
37                })
38                .collect_view()}
39        </div>
40    }
41}