feat(admin): use global EmptyState component in posts management page

This commit is contained in:
xfy 2026-06-29 11:38:50 +08:00
parent 46e9a29f1e
commit 72d21c6670

View File

@ -14,7 +14,8 @@ use crate::api::posts::PostListResponse;
use crate::api::posts::{delete_post, rebuild_content_html, CreatePostResponse, RebuildResult}; use crate::api::posts::{delete_post, rebuild_content_html, CreatePostResponse, RebuildResult};
use crate::components::skeletons::delayed_skeleton::DelayedSkeleton; use crate::components::skeletons::delayed_skeleton::DelayedSkeleton;
use crate::components::skeletons::posts_skeleton::PostsSkeleton; 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::models::post::PostListItem;
use crate::router::Route; use crate::router::Route;
@ -90,7 +91,14 @@ pub fn PostsPage(page: i32) -> Element {
if loading() && posts().is_empty() { if loading() && posts().is_empty() {
DelayedSkeleton { PostsSkeleton {} } DelayedSkeleton { PostsSkeleton {} }
} else if posts().is_empty() { } else if posts().is_empty() {
EmptyState { message: "暂无文章", variant: "default" } EmptyState {
title: "暂无文章",
description: "还没有创建任何文章,开始写下你的第一篇文字吧。",
action: EmptyStateAction {
label: "写文章".to_string(),
to: Route::Write {},
}
}
} else { } else {
div { class: "{ADMIN_TABLE_CLASS}", div { class: "{ADMIN_TABLE_CLASS}",
table { class: "w-full text-sm", table { class: "w-full text-sm",