1.0.0 • Published 3 years ago

vue-money-button v1.0.0

Weekly downloads
7
License
Apache-2.0
Repository
github
Last release
3 years ago

vue-money-button

vue-money-button

npm License

A Vue.js component that lets you integrate Money Button into your app or web page. Developed independently, but closely mirrors the conventions established in the offical React component.

Upgrading from a previous version?

🚨 Breaking change 🚨

Since version 1.0.0 the default export of the package is now a Vue plugin. When installed, the plugin does two things:

  • Adds the Money Button component to Vue globally
  • Attaches a $getMoneyButton() function to all your Vue instances. This async function returns the moneyButton object and provides access to the Invisible Money Button API.

Prior to version 1.0.0, the default export was a Vue component for use directly in your own components. If you don't want to add the Money Button component globally, and you don't need Invisible Money Button, you can still require the component as needed, using the named export. See examples below.

Installation

Install with npm or yarn:

yarn add vue-money-button

Install the plugin in your Vue app's entrypoint:

import Vue from 'vue'
import VueMoneyButton from 'vue-money-button'

Vue.use(VueMoneyButton)

The above step is recommended but optional. It adds the component to Vue globally, and also attaches $getMoneyButton() to all your Vue instances. Alternatively you can skip the above step, and add Money Button to your components where required (although you don't get access to IMB this way).

<script>
import { MoneyButton } from 'vue-money-button'

export default {
  components: {
    MoneyButton
  }
}
</script>

Usage

Using the Money Button component:

<template>
  <div>
    <MoneyButton
      to="YOUR BITCOIN ADDRESS"
      amount="0.5"
      currency="USD"
      label="Send some loot"
      @payment="handlePayment"
    />
  </div>
</template>

<script>
export default {
  methods: {
    handlePayment(payment) {
      // handle payment
    }
  }
}
</script>

Using Invisible Money Button:

<template>
  <div>
    <a @click="likePost">Like!</a>
  </div>
</template>

<script>
export default {
  methods: {
    async likePost() {
      const { IMB } = await this.$getMoneyButton()
      const button = IMB(imgConfig)

      button.swipe(likeParams)
    }
  }
}
</script>

Properties

The following properties can be set on the component:

PropTypeDefault
toString or Numbernull
amountString or Numbernull
currencyString'USD'
labelStringnull
successMessageStringnull
opReturnStringnull
outputsArray[]
cryptoOperationsArraynull
clientIdentifierStringnull
buttonIdString or Numbernull
buttonDataStringnull
typeString - buy or tip'buy'
editableBooleanfalse
disabledBooleanfalse
devModeBooleanfalse
preserveOrderBooleanfalse

An array of outputs can be set instead of the to, amount and currency properties. Each output object has the following parameters:

NameTypeRequired
toString
addressString
userIdString or Number
scriptString
amountString:heavy_check_mark:
currencyString:heavy_check_mark:

Events

The component emits the following events:

Event
loadTriggered on load
paymentTriggered on a successful payment
errorTriggered on a payment error
cryptoOperationsCallback returning the cryptoOperations object

License

vue-money-button is open source and released under the Apache-2 License.

Copyright (c) 2018-2021 libitx.

1.0.0

3 years ago

0.3.4

4 years ago

0.3.3

4 years ago

0.3.2

5 years ago

0.3.1

5 years ago

0.3.0

5 years ago

0.2.3

5 years ago

0.2.2

5 years ago

0.2.1

5 years ago

0.2.0

5 years ago

0.2.0-beta.1

5 years ago

0.2.0-beta.0

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago

0.0.6

6 years ago

0.0.5

6 years ago

0.0.4

6 years ago

0.0.3

6 years ago

0.0.2

6 years ago

0.0.1

6 years ago