diff options
author | 2022-08-04 12:09:32 +0200 | |
---|---|---|
committer | 2022-08-04 12:09:32 +0200 | |
commit | 447bdf2148098d70ba309e13d9b1e846b5064da1 (patch) | |
tree | 71db3b6915ca3ce4ee210f4a43868b750c8bba22 /src/tools/base64-string-converter/base64-string-converter.vue | |
parent | ca7cb4438972ca09f28a6a40332ec94ceaa4aab4 (diff) | |
download | it-tools-447bdf2148098d70ba309e13d9b1e846b5064da1.tar.gz it-tools-447bdf2148098d70ba309e13d9b1e846b5064da1.tar.zst it-tools-447bdf2148098d70ba309e13d9b1e846b5064da1.zip |
refactor(base64): mutualized base64 functions into global utilities
Diffstat (limited to 'src/tools/base64-string-converter/base64-string-converter.vue')
-rw-r--r-- | src/tools/base64-string-converter/base64-string-converter.vue | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/src/tools/base64-string-converter/base64-string-converter.vue b/src/tools/base64-string-converter/base64-string-converter.vue index 46ff5e2..d725117 100644 --- a/src/tools/base64-string-converter/base64-string-converter.vue +++ b/src/tools/base64-string-converter/base64-string-converter.vue @@ -37,24 +37,20 @@ <script setup lang="ts"> import { useCopy } from '@/composable/copy'; import { useValidation } from '@/composable/validation'; +import { base64ToText, isValidBase64, textToBase64 } from '@/utils/base64'; +import { withDefaultOnError } from '@/utils/defaults'; import { computed, ref } from 'vue'; const textInput = ref(''); -const base64Output = computed(() => window.btoa(textInput.value)); +const base64Output = computed(() => textToBase64(textInput.value)); const { copy: copyTextBase64 } = useCopy({ source: base64Output, text: 'Base64 string copied to the clipboard' }); const base64Input = ref(''); -const textOutput = computed(() => { - try { - return window.atob(base64Input.value); - } catch (_) { - return ''; - } -}); +const textOutput = computed(() => withDefaultOnError(() => base64ToText(base64Input.value.trim()), '')); const { copy: copyText } = useCopy({ source: textOutput, text: 'String copied to the clipboard' }); const b64Validation = useValidation({ source: base64Input, - rules: [{ message: 'Invalid base64 string', validator: (value) => window.atob(value) }], + rules: [{ message: 'Invalid base64 string', validator: (value) => isValidBase64(value.trim()) }], }); </script> |