Added base64 and URL encoders/decoders
Reviewed-on: #250 Reviewed-by: Adam Bem <bema@noreply.example.com> Co-authored-by: widlam <mikolaj.widla@gmail.com> Co-committed-by: widlam <mikolaj.widla@gmail.com>
This commit is contained in:
35
Frontend/src/components/encoder/EncodeUriButtonComponent.vue
Normal file
35
Frontend/src/components/encoder/EncodeUriButtonComponent.vue
Normal file
@@ -0,0 +1,35 @@
|
||||
<script setup lang="ts">
|
||||
|
||||
|
||||
const props = defineProps(
|
||||
{
|
||||
operation: {type:String,required:true},
|
||||
code: {type: String, required: true}
|
||||
}
|
||||
)
|
||||
|
||||
const emit = defineEmits([
|
||||
'update:result'
|
||||
])
|
||||
|
||||
function encode(){
|
||||
|
||||
switch(props.operation.toLowerCase()){
|
||||
|
||||
case "encode":{
|
||||
emit('update:result', encodeURI(props.code) )
|
||||
break;
|
||||
}
|
||||
case "decode":{
|
||||
emit('update:result', decodeURI(props.code) )
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<button @click="encode()" class="tool-button">{{ props.operation }}</button>
|
||||
</template>
|
||||
39
Frontend/src/components/encoder/EncoderButtonComponent.vue
Normal file
39
Frontend/src/components/encoder/EncoderButtonComponent.vue
Normal file
@@ -0,0 +1,39 @@
|
||||
<script setup lang="ts">
|
||||
|
||||
|
||||
const props = defineProps(
|
||||
{
|
||||
encodeType: {type:String,required:true},
|
||||
code: {type: String, required: true}
|
||||
}
|
||||
)
|
||||
|
||||
const emit = defineEmits([
|
||||
'update:result',
|
||||
'image:show'
|
||||
])
|
||||
|
||||
function convert(){
|
||||
console.log("works")
|
||||
switch(props.encodeType.toLowerCase()){
|
||||
case "base64":{
|
||||
emit('update:result', btoa(props.code) )
|
||||
break;
|
||||
}
|
||||
case "text":{
|
||||
emit('update:result', atob(props.code) )
|
||||
break;
|
||||
}
|
||||
case "image":{
|
||||
emit('image:show', props.code )
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<button @click="convert()" class="tool-button">{{ props.encodeType }}</button>
|
||||
</template>
|
||||
@@ -48,6 +48,12 @@ onMounted( () => {
|
||||
<SidebarToolLinkComponent path-to="/rest/mock" element-content="Mock" />
|
||||
</sidebar-menu-element-component>
|
||||
|
||||
<sidebar-menu-element-component category-name="Encoder">
|
||||
<SidebarToolLinkComponent path-to="/encoder/base64" element-content="Base64" />
|
||||
<SidebarToolLinkComponent path-to="/encoder/url" element-content="URL" />
|
||||
</sidebar-menu-element-component>
|
||||
|
||||
|
||||
</div>
|
||||
<FooterComponent></FooterComponent>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user