diff --git a/apps/ui/src/components/ui/skeleton.tsx b/apps/ui/src/components/ui/skeleton.tsx new file mode 100644 index 00000000..0efc029a --- /dev/null +++ b/apps/ui/src/components/ui/skeleton.tsx @@ -0,0 +1,18 @@ +/** + * Skeleton Components + * + * Loading placeholder components for content that's being fetched. + */ + +import { cn } from '@/lib/utils'; + +interface SkeletonPulseProps { + className?: string; +} + +/** + * Pulsing skeleton placeholder for loading states + */ +export function SkeletonPulse({ className }: SkeletonPulseProps) { + return
; +} diff --git a/apps/ui/src/components/views/settings-view/cli-status/claude-cli-status.tsx b/apps/ui/src/components/views/settings-view/cli-status/claude-cli-status.tsx index 2457969b..d4ad50c5 100644 --- a/apps/ui/src/components/views/settings-view/cli-status/claude-cli-status.tsx +++ b/apps/ui/src/components/views/settings-view/cli-status/claude-cli-status.tsx @@ -1,5 +1,6 @@ import { useState, useCallback } from 'react'; import { Button } from '@/components/ui/button'; +import { SkeletonPulse } from '@/components/ui/skeleton'; import { CheckCircle2, AlertCircle, RefreshCw, XCircle } from 'lucide-react'; import { cn } from '@/lib/utils'; import type { CliStatus } from '../shared/types'; @@ -34,10 +35,6 @@ function getAuthMethodLabel(method: string): string { } } -function SkeletonPulse({ className }: { className?: string }) { - return ; -} - function ClaudeCliStatusSkeleton() { return ( ; -} - function CodexCliStatusSkeleton() { return (