'use client'; import * as React from 'react'; import { Card, CardHeader, CardContent } from '../../ui/card'; import { Skeleton } from '../../ui/skeleton'; import { cn } from '../../shared/utils'; export interface ActivityCardSkeletonProps extends React.HTMLAttributes { /** Number of skeleton rows to display (mirrors `maxItems` on ActivityCard) */ rows?: number; } /** * Loading placeholder for `ActivityCard`. * * @description * Mirrors the visual layout of `ActivityCard` with pulsing skeletons: * avatar circle + two text lines + an optional badge pill on the right. * Drop-in replacement while data is fetching. * * @example * ```tsx * {isLoading ? : } * ``` */ export function ActivityCardSkeleton({ rows = 5, className, ...props }: ActivityCardSkeletonProps) { return ( {/* Title */}
    {Array.from({ length: rows }).map((_, i) => (
  • {/* Avatar circle */}
    {/* Action line — name + action text */} {/* Timestamp */}
    {/* Badge pill */}
  • ))}
); }