npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@zapadale/vue3-confirm-dialog

v1.0.2

Published

Vue.js 3 version of Simple Confirm Dialog verification plugin

Downloads

152

Readme

issues npm npm version license

vue3-confirm-dialog

Vue.js 3 version of Onur Aslan's Simple Confirm Dialog verification plugin

vue-confirm

Plug-and-play confirmation plugin for Vue 3 and Vuex 4, written in the new Conditional API.

  • No custom template required - just load the plugin and use it right away.
  • Custom Title, Message and Button names.
  • Can be used as password input and confirmation window at the same time.
  • Supports confirmation by pressing Enter and closing the window by pressing Escape. This functionality can be turned off.

Install

$ npm install --save @zapadale/vue3-confirm-dialog

Quick Start Usage

In app.js:

import Vue3ConfirmDialog from '@zapadale/vue3-confirm-dialog'

const app = createApp(); // use your app name
app.use(Vue3ConfirmDialog);

Component is installed automatically by the plugin, you dont need to add it manually.

In App.vue:

<template>
  <div id="app">
    <vue3-confirm-dialog/>
    <!-- your code -->
  </div>
</template>

<script>
  export default {
    name: 'app'
  }
</script>

I recommend creating a app-wide notification component for handling all confirmations

Vue Options API:

methods: {
    handleClick(){
      this.$confirm(
        {
          title: 'Confirm your action',
          message: 'Are you sure?',
          disableKeys: false,
          auth: false,
          button: {
            no: 'No',
            yes: 'Yes'
          },
          /**
          * Callback Function
          * @param {Boolean} confirm
          */
          callback: confirm => {
            if (confirm) {
              // ... do something
            }
          }
        }
      )
    }
  }

Vue Composition API / Vuex files / other *.js:

Beware: Composition API does not have "this"

Direct confirm import for Vuex

Can be used in Vue files as well

import { confirm } from '@zapadale/vue3-confirm-dialog'

export default {
  namespaced: true,
  state: {},
  actions: {
    logout({ commit }) {
      confirm({
        title: 'Confirm your action',
          message: 'Are you sure?',
          disableKeys: false,
          auth: false,
          button: {
            no: 'No',
            yes: 'Yes'
          },
          /**
          * Callback Function
          * @param {Boolean} confirm
          * @param {String} password //if auth:true
          */
          callback: (confirm, password) => {
            //if auth:true
            if (confirm && password == YOUR_PASSWORD) {
                // ...do something
            }
          }
       })
    }
  }
}

Inject function for Vue files

The plugin automatically sets global provide() with key "vue3-confirm-dialog".

<script setup>
import { inject } from 'vue'

const confirm = inject('@zapadale/vue3-confirm-dialog');

function test() {
  confirm(
        {
          title: 'Confirm your action',
          message: 'Are you sure?',
          disableKeys: false,
          auth: false,
          button: {
            no: 'No',
            yes: 'Yes'
          },
          /**
          * Callback Function
          * @param {Boolean} confirm
          */
          callback: confirm => {
            if (confirm) {
              console.log('Works');
            }
          }
        }
      )
})

</script>

API

If you want to password confirm, "auth" key is must be true. By default, you can confirm the dialog by pressing "enter" or deny by pressing "escape". To disable this functionality, set "disableKeys" to "true"

this.$confirm({
    title: 'Confirm your action',
    message: 'Are you sure?',
    disableKeys: false,
    auth: false,
    button: {
        no: 'No',
        yes: 'Yes'
    },
    /**
     * Callback Function
     * @param {Boolean} confirm
     * @param {String} password //if auth:true
    */
    callback: (confirm, password) => {
        //if auth:true
        if (confirm && password == YOUR_PASSWORD) {
        // ...do something
        }
    }
});

Use only for information

If you want to use only for information and you want of see one button in dialog, you can use only one of 'no' or 'yes' button object. Beware: clicking the single button still counts as clicking the YES/NO button. So, use "button:{no:'OK'}" if you want to just inform and not call the callback

methods: {
    handleClick(){
      this.$confirm(
        {
          title: 'Information',
          message: 'This content has been removed',
          disableKeys: false,
          auth: false,
          button: {
          	no: 'OK',
          }
        },
        /**
        * Callback Function
        * @param {Boolean} confirm
        */
        callback: confirm => {
          if (confirm) {
            // ... do something
          }
        }
      )
    }
  }

Issues/improvements

Since I am a beginner at Vue 3/Vuex 4 it would be a great help to report any bugs/improvements you find. I am thrilled to fix/add them but I need to know about them. Thank you for your time!