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.vue62
1 files changed, 33 insertions, 29 deletions
diff --git a/src/tools/base64-string-converter/base64-string-converter.vue b/src/tools/base64-string-converter/base64-string-converter.vue
index 9d574c9..486758c 100644
--- a/src/tools/base64-string-converter/base64-string-converter.vue
+++ b/src/tools/base64-string-converter/base64-string-converter.vue
@@ -1,3 +1,30 @@
+<script setup lang="ts">
+import { computed, ref } from 'vue';
+import { useCopy } from '@/composable/copy';
+import { base64ToText, isValidBase64, textToBase64 } from '@/utils/base64';
+import { withDefaultOnError } from '@/utils/defaults';
+
+const encodeUrlSafe = useStorage('base64-string-converter--encode-url-safe', false);
+const decodeUrlSafe = useStorage('base64-string-converter--decode-url-safe', false);
+
+const textInput = ref('');
+const base64Output = computed(() => textToBase64(textInput.value, { makeUrlSafe: encodeUrlSafe.value }));
+const { copy: copyTextBase64 } = useCopy({ source: base64Output, text: 'Base64 string copied to the clipboard' });
+
+const base64Input = ref('');
+const textOutput = computed(() =>
+ withDefaultOnError(() => base64ToText(base64Input.value.trim(), { makeUrlSafe: decodeUrlSafe.value }), ''),
+);
+const { copy: copyText } = useCopy({ source: textOutput, text: 'String copied to the clipboard' });
+const b64ValidationRules = [
+ {
+ message: 'Invalid base64 string',
+ validator: (value: string) => isValidBase64(value.trim(), { makeUrlSafe: decodeUrlSafe.value }),
+ },
+];
+const b64ValidationWatch = [decodeUrlSafe];
+</script>
+
<template>
<c-card title="String to base64">
<n-form-item label="Encode URL safe" label-placement="left">
@@ -24,7 +51,9 @@
/>
<div flex justify-center>
- <c-button @click="copyTextBase64()"> Copy base64 </c-button>
+ <c-button @click="copyTextBase64()">
+ Copy base64
+ </c-button>
</div>
</c-card>
@@ -54,34 +83,9 @@
/>
<div flex justify-center>
- <c-button @click="copyText()"> Copy decoded string </c-button>
+ <c-button @click="copyText()">
+ Copy decoded string
+ </c-button>
</div>
</c-card>
</template>
-
-<script setup lang="ts">
-import { useCopy } from '@/composable/copy';
-import { base64ToText, isValidBase64, textToBase64 } from '@/utils/base64';
-import { withDefaultOnError } from '@/utils/defaults';
-import { computed, ref } from 'vue';
-
-const encodeUrlSafe = useStorage('base64-string-converter--encode-url-safe', false);
-const decodeUrlSafe = useStorage('base64-string-converter--decode-url-safe', false);
-
-const textInput = ref('');
-const base64Output = computed(() => textToBase64(textInput.value, { makeUrlSafe: encodeUrlSafe.value }));
-const { copy: copyTextBase64 } = useCopy({ source: base64Output, text: 'Base64 string copied to the clipboard' });
-
-const base64Input = ref('');
-const textOutput = computed(() =>
- withDefaultOnError(() => base64ToText(base64Input.value.trim(), { makeUrlSafe: decodeUrlSafe.value }), ''),
-);
-const { copy: copyText } = useCopy({ source: textOutput, text: 'String copied to the clipboard' });
-const b64ValidationRules = [
- {
- message: 'Invalid base64 string',
- validator: (value: string) => isValidBase64(value.trim(), { makeUrlSafe: decodeUrlSafe.value }),
- },
-];
-const b64ValidationWatch = [decodeUrlSafe];
-</script>