@@ -25,11 +25,21 @@ const PROMPTS_WITHOUT_UPLOAD = [
2525
2626function App() {
2727 const [uploadedImageId, setUploadedImageId] = useState<string | null>(null);
28+ const [uploadedUrl, setUploadedUrl] = useState<string | null>(null);
2829 const [clickedIds, setClickedIds] = useState(new Set<number>());
2930
3031 const handleUploadSuccess = (result: CloudinaryUploadResult) => {
3132 console.log('Upload successful:', result);
33+ // result contains everything you need to work with the uploaded asset:
34+ // result.public_id — Cloudinary asset ID (use with cld.image() for transformations)
35+ // result.secure_url — direct HTTPS URL to the original file
36+ // result.url — HTTP URL (prefer secure_url)
37+ // result.width / result.height — image dimensions
38+ // result.format — file format (e.g. 'jpg', 'png', 'webp')
39+ // result.bytes — file size in bytes
40+ // result.resource_type — 'image', 'video', or 'raw'
3241 setUploadedImageId(result.public_id);
42+ setUploadedUrl(result.secure_url); // store the URL to use anywhere in your app
3343 };
3444
3545 const handleUploadError = (error: Error) => {
@@ -85,6 +95,14 @@ function App() {
8595 {uploadedImageId && (
8696 <p className="image-info">Public ID: {uploadedImageId}</p>
8797 )}
98+ {uploadedUrl && (
99+ <p className="image-info">
100+ URL:{' '}
101+ <a href={uploadedUrl} target="_blank" rel="noopener noreferrer">
102+ {uploadedUrl}
103+ </a>
104+ </p>
105+ )}
88106 </div>
89107
90108 <div className="ai-prompts-section">
0 commit comments