import { useState } from 'react'; import { Dropzone } from './features/watermark/components/Dropzone'; import { Button } from '@imphnen-frontend-service/ui/atoms'; import { toast } from 'sonner'; import { api } from './features/auth/api/auth.service'; export default function HomePage() { const [imageFile, setImageFile] = useState(null); const [generatedImage, setGeneratedImage] = useState(null); const [isLoading, setIsLoading] = useState(false); const handleImageDropped = (file: File) => { setImageFile(file); setGeneratedImage(null); // Reset previous result toast.success('Image selected ready for generation!'); }; const handleReset = () => { setImageFile(null); setGeneratedImage(null); }; const handleGenerate = async () => { if (!imageFile) return; setIsLoading(true); const formData = new FormData(); formData.append('image', imageFile); try { const response = await api.post('/campaigns/process-image', formData, { headers: { 'Content-Type': 'multipart/form-data', }, responseType: 'blob', }); const imageUrl = URL.createObjectURL(response.data); setGeneratedImage(imageUrl); toast.success('QR Code generated successfully!'); } catch (error: any) { console.error(error); const message = error.response?.data?.message || 'Failed to generate QR code.'; toast.error(message); } finally { setIsLoading(false); } }; const handleDownload = () => { if (!generatedImage) return; const link = document.createElement('a'); link.href = generatedImage; link.download = `qr-campaign-${Date.now()}.png`; document.body.appendChild(link); link.click(); document.body.removeChild(link); }; return (

QR Code Generator

Upload your image to add the campaign QR code watermark.

{!imageFile ? ( ) : (
{isLoading ? (

Processing image...

) : generatedImage ? ( Generated with QR ) : (
Original
Original Image
)}
{!generatedImage && !isLoading && ( <> )} {generatedImage && ( <> )}
)}
); }