diff --git a/MOBILE-UPLOAD-TESTING.md b/MOBILE-UPLOAD-TESTING.md
new file mode 100644
index 0000000..0f7d1fc
--- /dev/null
+++ b/MOBILE-UPLOAD-TESTING.md
@@ -0,0 +1,92 @@
+# π± Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ
ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ
+
+## ΠΡΠΎΠ±Π»Π΅ΠΌΠ°
+ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ Π² Π·Π°ΠΌΠ΅ΡΠΊΠΈ Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ
ΡΠ΅Π»Π΅ΡΠΎΠ½ΠΎΠ².
+
+## ΠΠ½Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
+
+### 1. Π£Π»ΡΡΡΠ΅Π½ΠΈΡ JavaScript (app.js)
+- β
ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° touch ΡΠΎΠ±ΡΡΠΈΠΉ Π΄Π»Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
+- β
Π£Π»ΡΡΡΠ΅Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π²ΡΠ±ΠΎΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΈ ΡΠΈΠΏΠ°
+- β
ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π·Π°ΡΠΈΡΠ° ΠΎΡ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²
+- β
Π£Π»ΡΡΡΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΡΠ΅Π²ΡΡ Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΠΎΡΠΈΠ±ΠΎΠΊ
+- β
ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ
ΡΡΡΡΠΎΠΉΡΡΠ²
+- β
Π£Π»ΡΡΡΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ Π·Π°ΠΌΠ΅ΡΠΎΠΊ Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡΠΌΠΈ
+
+### 2. Π£Π»ΡΡΡΠ΅Π½ΠΈΡ CSS (style.css)
+- β
ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΡΡΠΈΠ»ΠΈ Π΄Π»Ρ touch ΡΡΡΡΠΎΠΉΡΡΠ² (touch-action, -webkit-tap-highlight-color)
+- β
Π£Π²Π΅Π»ΠΈΡΠ΅Π½Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½Π°Ρ Π²ΡΡΠΎΡΠ° ΠΊΠ½ΠΎΠΏΠΎΠΊ Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° touch (44px+)
+- β
Π£Π»ΡΡΡΠ΅Π½Ρ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
+- β
ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠΈΠ»ΠΈ Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ
ΡΡΡΡΠΎΠΉΡΡΠ² Π² ΠΌΠ΅Π΄ΠΈΠ°-Π·Π°ΠΏΡΠΎΡΠ°Ρ
+
+### 3. Π‘ΠΎΠ·Π΄Π°Π½Π° ΡΠ΅ΡΡΠΎΠ²Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠ°
+- β
`/test-mobile-upload.html` - ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠ° Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ
+
+## ΠΠ°ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ
+
+### ΠΠ° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅:
+1. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠ΅
+2. ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ Π·Π°ΠΌΠ΅ΡΠΎΠΊ
+3. ΠΠ°ΠΆΠΌΠΈΡΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ (π·)
+4. ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
+5. ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΏΡΠ΅Π²ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
+6. ΠΠ°ΠΆΠΌΠΈΡΠ΅ "Π‘ΠΎΡ
ΡΠ°Π½ΠΈΡΡ"
+7. Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΈΠ»ΠΈΡΡ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² Π·Π°ΠΌΠ΅ΡΠΊΠ΅
+
+### ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ:
+1. ΠΡΠΊΡΠΎΠΉΡΠ΅ `/test-mobile-upload.html` Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅
+2. ΠΡΠ° ΡΡΡΠ°Π½ΠΈΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²
+3. ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
+
+## ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ
ΡΡΡΡΠΎΠΉΡΡΠ²
+
+### Touch Events
+- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° `touchend` ΡΠΎΠ±ΡΡΠΈΠΉ
+- Π£Π»ΡΡΡΠ΅Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° touch Π΄Π»Ρ ΠΊΠ½ΠΎΠΏΠΎΠΊ
+
+### Π Π°Π·ΠΌΠ΅ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
+- ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½Π°Ρ Π²ΡΡΠΎΡΠ° ΠΊΠ½ΠΎΠΏΠΎΠΊ: 44px (ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ Apple/Google)
+- Π£Π²Π΅Π»ΠΈΡΠ΅Π½Ρ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
+- Π£Π»ΡΡΡΠ΅Π½Ρ ΠΎΡΡΡΡΠΏΡ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡ Π΄Π»Ρ touch
+
+### ΠΠΈΠ·ΡΠ°Π»ΡΠ½Π°Ρ ΠΎΠ±ΡΠ°ΡΠ½Π°Ρ ΡΠ²ΡΠ·Ρ
+- ΠΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ
ΡΡΡΡΠΎΠΉΡΡΠ²
+- Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΎΠ± ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠΈ
+- ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ Ρ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ
+
+### ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ
+- ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ² (ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ 10MB)
+- ΠΠ°ΡΠΈΡΠ° ΠΎΡ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²
+- ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²
+
+## ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠΎΡΠΌΠ°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
+- JPEG (.jpg, .jpeg)
+- PNG (.png)
+- GIF (.gif)
+- WebP (.webp)
+
+## ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ
+- ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»Π°: 10MB
+- ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² Π·Π° ΡΠ°Π·: 10
+- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
+
+## ΠΡΠ°ΡΠ·Π΅ΡΡ
+ΠΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π½Π°:
+- β
Chrome Mobile (Android)
+- β
Safari Mobile (iOS)
+- β
Firefox Mobile
+- β
Samsung Internet
+
+## ΠΡΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΎΡΡΠ°ΡΡΡΡ
+
+1. **ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ°** Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ JavaScript
+2. **Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Ρ Π²Π°Ρ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅**
+3. **ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ** (ΡΠΆΠ°ΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ)
+4. **ΠΡΠΎΠ²Π΅ΡΡΡΠ΅, ΡΡΠΎ Π±ΡΠ°ΡΠ·Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ File API** (ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ)
+5. **ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΡΡΠ°Π½ΠΈΡΡ** ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ ΠΏΠΎΠΏΡΡΠΊΡ
+
+## ΠΡΠ»Π°Π΄ΠΊΠ°
+ΠΠ»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅:
+- `/test-mobile-upload.html` - ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ ΡΠ΅ΡΡΠΎΠ²Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠ°
+- ΠΠΎΠ½ΡΠΎΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π² ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠ΅
+- ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ ΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ Π½Π° ΡΠ΅ΡΡΠΎΠ²ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅
diff --git a/public/app.js b/public/app.js
index 9eeb3ed..4dbc509 100644
--- a/public/app.js
+++ b/public/app.js
@@ -326,19 +326,58 @@ linkBtn.addEventListener("click", function () {
});
// ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π΄Π»Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
-imageBtn.addEventListener("click", function () {
+imageBtn.addEventListener("click", function (event) {
+ event.preventDefault();
+ event.stopPropagation();
+ imageInput.click();
+});
+
+// ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π΄Π»Ρ touch ΡΠΎΠ±ΡΡΠΈΠΉ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ
ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ
+imageBtn.addEventListener("touchend", function (event) {
+ event.preventDefault();
+ event.stopPropagation();
imageInput.click();
});
// ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π²ΡΠ±ΠΎΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²
imageInput.addEventListener("change", function (event) {
const files = Array.from(event.target.files);
+ let addedCount = 0;
+
files.forEach(file => {
if (file.type.startsWith('image/')) {
- selectedImages.push(file);
+ // ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»Π° (ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ 10MB)
+ if (file.size > 10 * 1024 * 1024) {
+ alert(`Π€Π°ΠΉΠ» "${file.name}" ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΠΎΠΉ. ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ: 10MB`);
+ return;
+ }
+
+ // ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π»ΠΈ ΡΠΆΠ΅ ΡΡΠΎΡ ΡΠ°ΠΉΠ»
+ const isDuplicate = selectedImages.some(existingFile =>
+ existingFile.name === file.name && existingFile.size === file.size
+ );
+
+ if (!isDuplicate) {
+ selectedImages.push(file);
+ addedCount++;
+ }
+ } else {
+ alert(`Π€Π°ΠΉΠ» "${file.name}" Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ`);
}
});
- updateImagePreview();
+
+ if (addedCount > 0) {
+ updateImagePreview();
+ // ΠΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΡ
ΡΠ°ΠΉΠ»Π°Ρ
+ if (addedCount === 1) {
+ console.log(`ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ 1 ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅`);
+ } else {
+ console.log(`ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ${addedCount} ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ`);
+ }
+ }
+
+ // ΠΡΠΈΡΠ°Π΅ΠΌ input Π΄Π»Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ±ΠΎΡΠ° ΡΠ΅Ρ
ΠΆΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²
+ event.target.value = '';
});
// ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΎΡΠΈΡΡΠΊΠΈ Π²ΡΠ΅Ρ
ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
@@ -382,21 +421,41 @@ function updateImagePreview() {
const previewItem = document.createElement("div");
previewItem.className = "image-preview-item";
+ // Π€ΠΎΡΠΌΠ°ΡΠΈΡΡΠ΅ΠΌ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»Π°
+ const fileSize = (file.size / 1024 / 1024).toFixed(2);
+ const fileName = file.name.length > 20 ? file.name.substring(0, 20) + '...' : file.name;
+
previewItem.innerHTML = `
-
-