Skip to content

Commit 7cd3cb4

Browse files
committed
fix(Image Formats Converter): better UI and clean image extension and multiple files
1 parent 746fe85 commit 7cd3cb4

File tree

4 files changed

+36
-88
lines changed

4 files changed

+36
-88
lines changed

components.d.ts

+1
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,7 @@ declare module '@vue/runtime-core' {
277277
NMenu: typeof import('naive-ui')['NMenu']
278278
NProgress: typeof import('naive-ui')['NProgress']
279279
NScrollbar: typeof import('naive-ui')['NScrollbar']
280+
NSpin: typeof import('naive-ui')['NSpin']
280281
NSwitch: typeof import('naive-ui')['NSwitch']
281282
NumeronymGenerator: typeof import('./src/tools/numeronym-generator/numeronym-generator.vue')['default']
282283
OcrImage: typeof import('./src/tools/ocr-image/ocr-image.vue')['default']

package.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,7 @@
8282
"cidr-tools": "^7.0.7",
8383
"colord": "^2.9.3",
8484
"composerize": "^1.6.12",
85-
"composerize-ts": "^0.6.2",
86-
"composeverter": "^1.7.2",
85+
"composeverter": "^1.7.4",
8786
"convert": "^5.5.1",
8887
"countries-and-timezones": "^3.7.2",
8988
"countries-db": "^1.2.0",

pnpm-lock.yaml

+12-75
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/tools/image-converter/image-converter.vue

+22-11
Original file line numberDiff line numberDiff line change
@@ -78,12 +78,17 @@ const outputFormatHasQuality = computed(() => {
7878
7979
const svgWasmLoaded = ref(false);
8080
81+
async function onFilesUploaded(uploadedFiles: File[]) {
82+
for (const file of uploadedFiles) {
83+
await onFileUploaded(file);
84+
}
85+
}
8186
async function onFileUploaded(uploadedFile: File) {
8287
const outputFormatValue = outputFormat.value;
8388
file.value = uploadedFile;
8489
let fileBuffer = new Uint8Array(await uploadedFile.arrayBuffer());
8590
86-
fileName.value = `${uploadedFile.name}`;
91+
fileName.value = uploadedFile.name.replace(/\.\w+$/, '');
8792
status.value = 'processing';
8893
try {
8994
if (outputFormatValue === 'webp') {
@@ -128,16 +133,7 @@ async function onFileUploaded(uploadedFile: File) {
128133

129134
<template>
130135
<div>
131-
<div style="flex: 0 0 100%" mb-2>
132-
<div mx-auto max-w-600px>
133-
<c-file-upload
134-
title="Drag and drop an image file here, or click to select a file"
135-
accept="image/*"
136-
paste-image
137-
@file-upload="onFileUploaded"
138-
/>
139-
</div>
140-
</div>
136+
<h4>First, select output options:</h4>
141137

142138
<c-select
143139
v-model:value="outputFormat"
@@ -157,6 +153,21 @@ async function onFileUploaded(uploadedFile: File) {
157153
</n-form-item>
158154
</div>
159155

156+
<h4>Then, drag and drop your images below and they will be converted and downloaded immediately:</h4>
157+
158+
<div style="flex: 0 0 100%" mb-2>
159+
<div mx-auto max-w-600px>
160+
<c-file-upload
161+
title="Drag and drop images files here, or click to select some files"
162+
accept="image/*"
163+
paste-image
164+
multiple
165+
@file-upload="onFileUploaded"
166+
@files-upload="onFilesUploaded"
167+
/>
168+
</div>
169+
</div>
170+
160171
<div mt-3 flex justify-center>
161172
<c-alert v-if="status === 'error'" type="error">
162173
An error occured processing {{ fileName }}

0 commit comments

Comments
 (0)