From 53de550d7c1d042fb5e67d93b45bb6b370768ca9 Mon Sep 17 00:00:00 2001 From: xfy Date: Wed, 8 Jul 2026 18:20:25 +0800 Subject: [PATCH] =?UTF-8?q?fix(admin):=20=E4=BF=AE=E5=A4=8D=E5=90=8E?= =?UTF-8?q?=E5=8F=B0=E9=AA=A8=E6=9E=B6=E5=B1=8F=E4=B8=8D=E5=8F=AF=E8=A7=81?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - admin_layout: 移除 (false, _) 分支中的 DelayedSkeleton 包裹,直接渲染 骨架屏并附加 animate-pulse。DelayedSkeleton 依赖 use_effect 延迟 200ms 置 visible=true,但 SSR 不执行 effect,导致服务端 HTML 输出空节点; hydration 后 checked 又会立即置 true 退出该分支,骨架屏窗口趋近于零。 去掉后 SSR HTML 直接包含骨架屏,用户在 WASM 加载 + 身份校验期间可见。 - comments: loading 初始值从 false 改为 true,与 use_paginated hook 保持 一致。旧值导致首帧 loading()=false,骨架屏条件永远不满足。 --- src/components/admin_layout.rs | 14 ++++++-------- src/pages/admin/comments.rs | 2 +- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/components/admin_layout.rs b/src/components/admin_layout.rs index 73aa895..f92c4ed 100644 --- a/src/components/admin_layout.rs +++ b/src/components/admin_layout.rs @@ -8,7 +8,7 @@ use dioxus::router::components::Link; use crate::api::auth::{get_current_user, logout}; use crate::components::admin_skeleton::AdminDashboardSkeleton; -use crate::components::skeletons::delayed_skeleton::DelayedSkeleton; + use crate::components::write_skeleton::WriteSkeleton; use crate::context::UserContext; use crate::router::Route; @@ -155,13 +155,11 @@ pub fn AdminLayout() -> Element { div { class: "flex-1 flex flex-col min-w-0 h-screen p-2 md:p-4", div { class: "flex-1 bg-[var(--color-paper-theme)] rounded-[2rem] shadow-sm border border-[var(--color-paper-border)] overflow-hidden relative flex flex-col", main { class: "{main_class}", - DelayedSkeleton { - div { class: "p-10", - { - match route { - Route::Write {} => rsx! { WriteSkeleton {} }, - _ => rsx! { AdminDashboardSkeleton {} }, - } + div { class: "p-10 animate-pulse", + { + match route { + Route::Write {} => rsx! { WriteSkeleton {} }, + _ => rsx! { AdminDashboardSkeleton {} }, } } } diff --git a/src/pages/admin/comments.rs b/src/pages/admin/comments.rs index 5e2e39b..dd55b6c 100644 --- a/src/pages/admin/comments.rs +++ b/src/pages/admin/comments.rs @@ -67,7 +67,7 @@ pub fn AdminCommentsPage(page: i32) -> Element { let mut comments: Signal> = use_signal(Vec::new); let mut total: Signal = use_signal(|| 0); #[allow(unused_mut)] - let mut loading: Signal = use_signal(|| false); + let mut loading: Signal = use_signal(|| true); #[allow(unused_mut)] let mut error: Signal> = use_signal(|| None);