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