feat: Add visual feedback and polish (Task 15)
- Implement toast notification system for success/error messages - Add loading states with skeleton loaders for async operations - Create smooth CSS transitions and animations - Enhance empty states with EmptyState component - Add loading.tsx files for Next.js loading states - Integrate toast notifications across all CRUD operations - Add fade-in and scale-in animations for better UX - Improve visual feedback for user actions
This commit is contained in:
35
app/list/[id]/loading.tsx
Normal file
35
app/list/[id]/loading.tsx
Normal file
@@ -0,0 +1,35 @@
|
||||
import { ListDetailSkeleton } from '@/components/SkeletonLoader'
|
||||
import { ArrowLeft } from 'lucide-react'
|
||||
import Link from 'next/link'
|
||||
|
||||
export default function Loading() {
|
||||
return (
|
||||
<main className="container mx-auto px-4 sm:px-6 py-6 sm:py-8 max-w-6xl">
|
||||
{/* Header Skeleton */}
|
||||
<div className="mb-6 sm:mb-8">
|
||||
<Link
|
||||
href="/"
|
||||
className="inline-flex items-center gap-2 text-gray-600 hover:text-gray-900 mb-4 transition-colors tap-target-sm text-sm sm:text-base"
|
||||
>
|
||||
<ArrowLeft size={20} className="flex-shrink-0" />
|
||||
<span>Back to Lists</span>
|
||||
</Link>
|
||||
|
||||
<div className="flex items-center gap-2 sm:gap-3 mb-2">
|
||||
<div className="w-5 h-5 sm:w-6 sm:h-6 rounded-full bg-gray-200 animate-pulse" />
|
||||
<div className="h-8 sm:h-10 w-48 bg-gray-200 rounded animate-pulse" />
|
||||
</div>
|
||||
|
||||
<div className="h-5 w-32 bg-gray-200 rounded animate-pulse" />
|
||||
</div>
|
||||
|
||||
{/* Inline Item Creation Skeleton */}
|
||||
<div className="mb-6 sm:mb-8">
|
||||
<div className="h-14 bg-gray-100 border-2 border-dashed border-gray-300 rounded-lg animate-pulse" />
|
||||
</div>
|
||||
|
||||
{/* Items List Skeleton */}
|
||||
<ListDetailSkeleton />
|
||||
</main>
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user