aboutsummaryrefslogtreecommitdiff
path: root/src/tools/url-encoder/url-encoder.vue
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/url-encoder/url-encoder.vue')
-rw-r--r--src/tools/url-encoder/url-encoder.vue84
1 files changed, 44 insertions, 40 deletions
diff --git a/src/tools/url-encoder/url-encoder.vue b/src/tools/url-encoder/url-encoder.vue
index 4f89986..5fdcade 100644
--- a/src/tools/url-encoder/url-encoder.vue
+++ b/src/tools/url-encoder/url-encoder.vue
@@ -1,3 +1,41 @@
+<script setup lang="ts">
+import { computed, ref } from 'vue';
+import { useCopy } from '@/composable/copy';
+import { useValidation } from '@/composable/validation';
+import { isNotThrowing } from '@/utils/boolean';
+import { withDefaultOnError } from '@/utils/defaults';
+
+const encodeInput = ref('Hello world :)');
+const encodeOutput = computed(() => withDefaultOnError(() => encodeURIComponent(encodeInput.value), ''));
+
+const encodedValidation = useValidation({
+ source: encodeInput,
+ rules: [
+ {
+ validator: value => isNotThrowing(() => encodeURIComponent(value)),
+ message: 'Impossible to parse this string',
+ },
+ ],
+});
+
+const { copy: copyEncoded } = useCopy({ source: encodeOutput, text: 'Encoded string copied to the clipboard' });
+
+const decodeInput = ref('Hello%20world%20%3A)');
+const decodeOutput = computed(() => withDefaultOnError(() => decodeURIComponent(decodeInput.value), ''));
+
+const decodeValidation = useValidation({
+ source: encodeInput,
+ rules: [
+ {
+ validator: value => isNotThrowing(() => decodeURIComponent(value)),
+ message: 'Impossible to parse this string',
+ },
+ ],
+});
+
+const { copy: copyDecoded } = useCopy({ source: decodeOutput, text: 'Decoded string copied to the clipboard' });
+</script>
+
<template>
<c-card title="Encode">
<n-form-item
@@ -24,7 +62,9 @@
</n-form-item>
<div flex justify-center>
- <c-button @click="copyEncoded"> Copy </c-button>
+ <c-button @click="copyEncoded">
+ Copy
+ </c-button>
</div>
</c-card>
<c-card title="Decode">
@@ -52,45 +92,9 @@
</n-form-item>
<div flex justify-center>
- <c-button @click="copyDecoded"> Copy </c-button>
+ <c-button @click="copyDecoded">
+ Copy
+ </c-button>
</div>
</c-card>
</template>
-
-<script setup lang="ts">
-import { useCopy } from '@/composable/copy';
-import { useValidation } from '@/composable/validation';
-import { isNotThrowing } from '@/utils/boolean';
-import { withDefaultOnError } from '@/utils/defaults';
-import { computed, ref } from 'vue';
-
-const encodeInput = ref('Hello world :)');
-const encodeOutput = computed(() => withDefaultOnError(() => encodeURIComponent(encodeInput.value), ''));
-
-const encodedValidation = useValidation({
- source: encodeInput,
- rules: [
- {
- validator: (value) => isNotThrowing(() => encodeURIComponent(value)),
- message: 'Impossible to parse this string',
- },
- ],
-});
-
-const { copy: copyEncoded } = useCopy({ source: encodeOutput, text: 'Encoded string copied to the clipboard' });
-
-const decodeInput = ref('Hello%20world%20%3A)');
-const decodeOutput = computed(() => withDefaultOnError(() => decodeURIComponent(decodeInput.value), ''));
-
-const decodeValidation = useValidation({
- source: encodeInput,
- rules: [
- {
- validator: (value) => isNotThrowing(() => decodeURIComponent(value)),
- message: 'Impossible to parse this string',
- },
- ],
-});
-
-const { copy: copyDecoded } = useCopy({ source: decodeOutput, text: 'Decoded string copied to the clipboard' });
-</script>