From e3211f08ed0747b0638c8bba1aed6ac7bd872fc8 Mon Sep 17 00:00:00 2001 From: dbanaszak1 Date: Sun, 21 Jan 2024 13:29:01 +0100 Subject: [PATCH] fix: detector --- Frontend/CatApp/public/vite.svg | 1 - Frontend/CatApp/src/components/Detector.tsx | 103 +++++++++++++++++--- 2 files changed, 88 insertions(+), 16 deletions(-) delete mode 100644 Frontend/CatApp/public/vite.svg diff --git a/Frontend/CatApp/public/vite.svg b/Frontend/CatApp/public/vite.svg deleted file mode 100644 index e7b8dfb..0000000 --- a/Frontend/CatApp/public/vite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Frontend/CatApp/src/components/Detector.tsx b/Frontend/CatApp/src/components/Detector.tsx index 321c437..46152f6 100644 --- a/Frontend/CatApp/src/components/Detector.tsx +++ b/Frontend/CatApp/src/components/Detector.tsx @@ -1,45 +1,118 @@ -import { ChangeEvent, useState } from 'react'; +import React, { ChangeEvent, useState } from 'react'; const Detector = () => { const [file, setFile] = useState(); - const [result, setResult] = useState(); + const [preview, setPreview] = useState('https://mly5gz70zztl.i.optimole.com/cb:w3s1.35324/w:auto/h:auto/q:mauto/f:best/https://www.lifewithcatman.com/wp-content/uploads/2019/03/maine-coon-cat-photography-robert-sijka-64-57ad8f2c0277c__880.jpg'); + const [results, setResults] = useState([]); // Array to store results + const [loading, setLoading] = useState(false); const handleFileChange = (e: ChangeEvent) => { if (e.target.files) { - setFile(e.target.files[0]); + const selectedFile = e.target.files[0]; + setFile(selectedFile); + + // Generate preview for the selected file + const reader = new FileReader(); + reader.onloadend = () => { + setPreview(reader.result as string); + }; + reader.readAsDataURL(selectedFile); } }; const handleSubmit = async () => { try { if (file) { + setLoading(true); + const formData = new FormData(); formData.append('image', file); - const response = await fetch('http://127.0.0.1:5000/detect-cat', { + const response = await fetch('http://127.0.0.1:5000/api/v1/detect-cat', { method: 'POST', body: formData, - mode: 'cors' }); - const resultFromServer = await response.text(); - console.log('Wynik:', resultFromServer); - setResult(resultFromServer); + if (response.ok) { + const resultFromServer = await response.json(); - console.log('File send.'); + // Update results list with the new result + setResults((prevResults) => [...prevResults, { file, ...resultFromServer }]); + } else { + console.error('Błąd serwera:', response.statusText); + } } else { - console.error('No file to send.'); + console.error('Brak pliku do wysłania.'); } } catch (error) { - console.error('Error:', error); + console.error('Błąd:', error); + } finally { + setLoading(false); } }; return ( -
- - - {result &&
Wynik: {result}
} +
+
+
+ {preview && ( +
+ Podgląd +
+ )} + + +
+
+ + + {loading &&
Wysyłanie pliku...
} + {results.length > 0 && ( +
+ {results.map((result, index) => ( +
+

Wyniki kota {index + 1}:

+ + + + + + + + + {result.results && Object.keys(result.results).map((filename) => ( + + + + + ))} + +
ZdjęcieWyniki
+ Podgląd + +

+ Result: {result.results[filename].isCat ? 'Cat' : 'Not a cat'} +

+
    + {result.results[filename].predictions && + Object.keys(result.results[filename].predictions).map((key) => ( +
  • + {result.results[filename].predictions[key].score.toFixed(2) * 100}% - + {result.results[filename].predictions[key].label} +
  • + ))} +
+
+
+ ))} +
+ )}
); };