New vipps-pill component opens vipps when clicked.
This commit is contained in:
		
							
								
								
									
										81
									
								
								frontend/ui/VippsPill.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								frontend/ui/VippsPill.vue
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,81 @@ | ||||
| <template> | ||||
|   <div aria-label="button" role="button" @click="openVipps" tabindex="0"> | ||||
|     <img src="public/assets/images/vipps-pay_with_vipps_pill.png" /> | ||||
|   </div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| export default { | ||||
|   props: { | ||||
|     amount: { | ||||
|       type: Number, | ||||
|       default: 1 | ||||
|     } | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       phone: __PHONE__, | ||||
|       name: __NAME__, | ||||
|       price: __PRICE__, | ||||
|       message: __MESSAGE__ | ||||
|     }; | ||||
|   }, | ||||
|   computed: { | ||||
|     isMobile: function() { | ||||
|       return this.isMobileFunction(); | ||||
|     }, | ||||
|     priceToPay: function() { | ||||
|       return this.amount * (this.price * 100); | ||||
|     }, | ||||
|     vippsUrlBasedOnUserAgent: function() { | ||||
|       if (navigator.userAgent.includes("iPhone")) { | ||||
|         return ( | ||||
|           "https://qr.vipps.no/28/2/01/031/47" + | ||||
|           this.phone.replace(/ /g, "") + | ||||
|           "?v=1&m=" + | ||||
|           this.message + | ||||
|           "&a=" + | ||||
|           this.priceToPay | ||||
|         ); | ||||
|       } | ||||
|  | ||||
|       return ( | ||||
|         "https://qr.vipps.no/28/2/01/031/47" + | ||||
|         this.phone.replace(/ /g, "") + | ||||
|         "?v=1&m=" + | ||||
|         this.message | ||||
|       ); | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|     openVipps() { | ||||
|       if (!this.isMobileFunction()) { | ||||
|         return; | ||||
|       } | ||||
|       window.location.assign(this.vippsUrlBasedOnUserAgent); | ||||
|     }, | ||||
|     isMobileFunction() { | ||||
|       if ( | ||||
|         navigator.userAgent.match(/Android/i) || | ||||
|         navigator.userAgent.match(/webOS/i) || | ||||
|         navigator.userAgent.match(/iPhone/i) || | ||||
|         navigator.userAgent.match(/iPad/i) || | ||||
|         navigator.userAgent.match(/iPod/i) || | ||||
|         navigator.userAgent.match(/BlackBerry/i) || | ||||
|         navigator.userAgent.match(/Windows Phone/i) | ||||
|       ) { | ||||
|         return true; | ||||
|       } else { | ||||
|         return false; | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| }; | ||||
| </script> | ||||
|  | ||||
| <style lang="scss" scoped> | ||||
| img { | ||||
|   cursor: pointer; | ||||
|   width: 100%; | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										
											BIN
										
									
								
								public/assets/images/vipps-pay_with_vipps_pill.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								public/assets/images/vipps-pay_with_vipps_pill.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 2.6 KiB | 
		Reference in New Issue
	
	Block a user