aboutsummaryrefslogtreecommitdiff
path: root/src/tools/base64-string-converter/base64-string-converter.vue
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/base64-string-converter/base64-string-converter.vue')
-rw-r--r--src/tools/base64-string-converter/base64-string-converter.vue14
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>