From 72d21c66707cec0aa5f049ee3c4cda46fbbaed60 Mon Sep 17 00:00:00 2001 From: xfy Date: Mon, 29 Jun 2026 11:38:50 +0800 Subject: [PATCH] feat(admin): use global EmptyState component in posts management page --- src/pages/admin/posts.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/pages/admin/posts.rs b/src/pages/admin/posts.rs index 37143e3..7866447 100644 --- a/src/pages/admin/posts.rs +++ b/src/pages/admin/posts.rs @@ -14,7 +14,8 @@ use crate::api::posts::PostListResponse; use crate::api::posts::{delete_post, rebuild_content_html, CreatePostResponse, RebuildResult}; use crate::components::skeletons::delayed_skeleton::DelayedSkeleton; use crate::components::skeletons::posts_skeleton::PostsSkeleton; -use crate::components::ui::{EmptyState, Pagination, StatusBadge, ADMIN_ROW_HOVER, ADMIN_TABLE_CLASS, BTN_TEXT_RED}; +use crate::components::empty_state::{EmptyState, EmptyStateAction}; +use crate::components::ui::{Pagination, StatusBadge, ADMIN_ROW_HOVER, ADMIN_TABLE_CLASS, BTN_TEXT_RED}; use crate::models::post::PostListItem; use crate::router::Route; @@ -90,7 +91,14 @@ pub fn PostsPage(page: i32) -> Element { if loading() && posts().is_empty() { DelayedSkeleton { PostsSkeleton {} } } else if posts().is_empty() { - EmptyState { message: "暂无文章", variant: "default" } + EmptyState { + title: "暂无文章", + description: "还没有创建任何文章,开始写下你的第一篇文字吧。", + action: EmptyStateAction { + label: "写文章".to_string(), + to: Route::Write {}, + } + } } else { div { class: "{ADMIN_TABLE_CLASS}", table { class: "w-full text-sm",