Skip to content

Commit 58f280c

Browse files
committed
fix: update downloadbase64
1 parent f07466f commit 58f280c

File tree

2 files changed

+30
-15
lines changed

2 files changed

+30
-15
lines changed

src/composable/downloadBase64.ts

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
import { extension as getExtensionFromMimeType, extension as getMimeTypeFromExtension } from 'mime-types';
2-
import type { Ref } from 'vue';
2+
import type { MaybeRef } from 'vue';
33
import _ from 'lodash';
4+
import { get } from '@vueuse/core';
45

56
export {
67
getMimeTypeFromBase64,
78
getMimeTypeFromExtension, getExtensionFromMimeType,
8-
useDownloadFileFromBase64, useDownloadFileFromBase64Refs,
9+
useDownloadFileFromBase64,
10+
previewImageFromBase64,
911
};
1012

1113
const commonMimeTypesSignatures = {
@@ -74,21 +76,34 @@ function downloadFromBase64({ sourceValue, filename, extension, fileMimeType }:
7476
}
7577

7678
function useDownloadFileFromBase64(
77-
{ source, filename, extension, fileMimeType }:
78-
{ source: Ref<string>; filename?: string; extension?: string; fileMimeType?: string }) {
79+
{ source, filename, extension }:
80+
{ source: MaybeRef<string>; filename?: MaybeRef<string>; extension?: MaybeRef<string> }) {
7981
return {
8082
download() {
81-
downloadFromBase64({ sourceValue: source.value, filename, extension, fileMimeType });
83+
downloadFromBase64({ sourceValue: get(source), filename: get(filename), extension: get(extension) });
8284
},
8385
};
8486
}
8587

86-
function useDownloadFileFromBase64Refs(
87-
{ source, filename, extension }:
88-
{ source: Ref<string>; filename?: Ref<string>; extension?: Ref<string> }) {
89-
return {
90-
download() {
91-
downloadFromBase64({ sourceValue: source.value, filename: filename?.value, extension: extension?.value });
92-
},
93-
};
88+
function previewImageFromBase64(base64String: string): HTMLImageElement {
89+
if (base64String === '') {
90+
throw new Error('Base64 string is empty');
91+
}
92+
93+
const img = document.createElement('img');
94+
img.src = base64String;
95+
96+
const container = document.createElement('div');
97+
container.appendChild(img);
98+
99+
const previewContainer = document.getElementById('previewContainer');
100+
if (previewContainer) {
101+
previewContainer.innerHTML = '';
102+
previewContainer.appendChild(container);
103+
}
104+
else {
105+
throw new Error('Preview container element not found');
106+
}
107+
108+
return img;
94109
}

src/tools/pdf-unlock/pdf-unlock.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<script setup lang="ts">
22
import { Base64 } from 'js-base64';
33
import createQPDFModule from 'qpdf-wasm-esm-embedded';
4-
import { useDownloadFileFromBase64Refs } from '@/composable/downloadBase64';
4+
import { useDownloadFileFromBase64 } from '@/composable/downloadBase64';
55
66
const status = ref<'idle' | 'done' | 'error' | 'processing'>('idle');
77
const file = ref<File | null>(null);
@@ -10,7 +10,7 @@ const base64OutputPDF = ref('');
1010
const fileName = ref('');
1111
const logs = ref<string[]>([]);
1212
const fileExtension = ref('pdf');
13-
const { download } = useDownloadFileFromBase64Refs(
13+
const { download } = useDownloadFileFromBase64(
1414
{
1515
source: base64OutputPDF,
1616
filename: fileName,

0 commit comments

Comments
 (0)