<template> <div class="modal-card box box-modal is-wallet-modal"> <header class="box-modal-header is-spaced"> <div class="box-modal-title">{{ $t('yourWallet') }}</div> <button type="button" class="delete" data-test="close_popup_button" @click="$emit('close')" /> </header> <div class="note"> {{ $t('pleaseSelectYourWeb3Wallet') }} </div> <div class="field is-grouped is-grouped-centered is-grouped-multiline wallets"> <div class="control"> <button v-show="isGeneric" class="button is-small is-background is-generic" @click="_web3Connect('generic')" > {{ $t('otherWallet') }} </button> <button v-show="!isMetamask" class="button is-small is-dark is-metamask" @click="onBoarding"> Install Metamask </button> <button v-show="isMetamask" class="button is-small is-background is-metamask" data-test="choose_metamask_option" @click="_web3Connect('metamask')" > Metamask </button> <button class="button is-small is-background is-walletConnect" data-test="choose_wallet_option" @click="_web3Connect('walletConnect')" > WalletConnect </button> </div> </div> </div> </template> <script> import Metamask from '@metamask/onboarding' export default { props: { web3Connect: { type: Function, required: true } }, computed: { isMetamask() { return window.ethereum?.isMetaMask }, isGeneric() { return !this.isMetamask && window.ethereum } }, mounted() { if (!this.isMetamask) { this.onboarding = new Metamask() } }, methods: { onBoarding() { this.onboarding.startOnboarding() }, async _web3Connect(name) { await this.web3Connect(name) this.$parent.close() } } } </script>