import { useState } from 'react'; import { useImages } from '../hooks/useImages'; import { USER_BUCKET } from '../config'; import ImageGrid from '../components/ImageGrid'; import ImageUploader from '../components/ImageUploader'; import type { ImageFile, UploadOptions } from '../types'; export default function DashboardPage() { const { images, isLoading, error, uploadImage, deleteImage, fetchImages } = useImages(USER_BUCKET); const [isUploading, setIsUploading] = useState(false); const [showUploader, setShowUploader] = useState(false); const [uploadError, setUploadError] = useState(null); const handleUpload = async (file: File, options: UploadOptions) => { setIsUploading(true); setUploadError(null); try { await uploadImage(file, options); setShowUploader(false); } catch (err) { setUploadError(err instanceof Error ? err.message : 'Upload failed'); } finally { setIsUploading(false); } }; const handleDelete = async (image: ImageFile) => { try { await deleteImage(image); } catch (err) { alert(err instanceof Error ? err.message : 'Delete failed'); } }; return (
{/* Header */}

My Images

Manage your uploaded images

{/* Upload section */} {showUploader && (

Upload New Image

{uploadError && (
{uploadError}
)}
)} {/* Error message */} {error && (
{error}
)} {/* Image grid */}
); }