Giter VIP home page Giter VIP logo

vue-money-button's Introduction

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:

Prop Type Default
to String or Number null
amount String or Number null
currency String 'USD'
label String null
successMessage String null
opReturn String null
outputs Array []
cryptoOperations Array null
clientIdentifier String null
buttonId String or Number null
buttonData String null
type String - buy or tip 'buy'
editable Boolean false
disabled Boolean false
devMode Boolean false
preserveOrder Boolean false

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

Name Type Required
to String
address String
userId String or Number
script String
amount String โœ”๏ธ
currency String โœ”๏ธ

Events

The component emits the following events:

Event
load Triggered on load
payment Triggered on a successful payment
error Triggered on a payment error
cryptoOperations Callback returning the cryptoOperations object

License

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

Copyright (c) 2018-2021 libitx.

vue-money-button's People

Contributors

libitx avatar pranavraut033 avatar slashrsm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

vue-money-button's Issues

can not load moneybutton in vue3

runtime-core.esm-bundler.js?5c40:formatted:2206 Uncaught TypeError: Cannot create property '0' on boolean 'true'
at normalizePropsOptions (runtime-core.esm-bundler.js?5c40:formatted:2206)
at createComponentInstance (runtime-core.esm-bundler.js?5c40:formatted:5783)
at mountComponent (runtime-core.esm-bundler.js?5c40:formatted:4182)
at processComponent (runtime-core.esm-bundler.js?5c40:formatted:4174)
at patch (runtime-core.esm-bundler.js?5c40:formatted:3793)
at mountChildren (runtime-core.esm-bundler.js?5c40:formatted:3995)
at mountElement (runtime-core.esm-bundler.js?5c40:formatted:3893)
at processElement (runtime-core.esm-bundler.js?5c40:formatted:3875)
at patch (runtime-core.esm-bundler.js?5c40:formatted:3790)
at mountChildren (runtime-core.esm-bundler.js?5c40:formatted:3995)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.