返回 AiToEarn
PublishDetailSkeleton.tsx
根目录 / project / aitoearn-web / src / components / Chat / ChatMessage / PublishDetailCard / PublishDetailSkeleton.tsx
1 /**
2 * PublishDetailSkeleton - 发布详情卡片骨架屏组件
3 * 用于发布详情加载状态的占位显示
4 */
5
6 import { Skeleton } from '@/components/ui/skeleton'
7 import { cn } from '@/utils/className'
8
9 export interface IPublishDetailSkeletonProps {
10 className?: string
11 }
12
13 export function PublishDetailSkeleton({ className }: IPublishDetailSkeletonProps) {
14 return (
15 <div
16 className={cn(
17 'flex gap-2 sm:gap-3 p-2 sm:p-3 rounded-lg border border-border bg-muted/30',
18 className,
19 )}
20 >
21 {/* 左侧:封面图骨架 - 移动端更小 */}
22 <Skeleton className="w-14 h-14 sm:w-20 sm:h-20 rounded-md shrink-0" />
23
24 {/* 右侧:内容骨架 */}
25 <div className="flex-1 min-w-0">
26 {/* 头部:账户信息 */}
27 <div className="flex items-center justify-between mb-1 sm:mb-1.5">
28 <div className="flex items-center gap-1 sm:gap-1.5">
29 <Skeleton className="w-4 h-4 sm:w-5 sm:h-5 rounded-full" />
30 <Skeleton className="w-12 sm:w-16 h-3 rounded" />
31 </div>
32 <Skeleton className="w-4 h-4 sm:w-[18px] sm:h-[18px] rounded" />
33 </div>
34
35 {/* 标题 */}
36 <Skeleton className="w-3/4 h-3 sm:h-4 rounded mb-0.5 sm:mb-1" />
37
38 {/* 描述 */}
39 <Skeleton className="w-full h-3 rounded mb-1 sm:mb-1.5" />
40
41 {/* 状态 */}
42 <Skeleton className="w-14 sm:w-16 h-5 rounded-full" />
43 </div>
44 </div>
45 )
46 }
47
48 export default PublishDetailSkeleton
49
49 lines Plain Text