🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Sign inDemoInstall
Socket

@emanuele-em/nuxt-swipe

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@emanuele-em/nuxt-swipe

## Development

1.0.2
latest
Source
npm
Version published
Weekly downloads
150
4.9%
Maintainers
1
Weekly downloads
 
Created
Source

Nuxt-Swipe

This Nuxt 3 module allows you to easily add swipe gestures to your Vue 3 App. With just a few lines of code, you can enable swiping on your website or web application.

Installation

To add this module to your Nuxt.js project, run the following command:

  npm i @emanuele-em/nuxt-swipe

Then, add nuxt-swipe to the modules section of your nuxt.config.js file:

  export default {
    modules: [
        '@emanuele-em/nuxt-swipe'
    ]
  }

Usage

To use the module, simply add <Swipe> component, it will be the component that will intercept the swipe gesture

For example:

<template>
    <Swipe>
        <slot />
    </Swipe>
</template>

The module will create a plugin that will emit the Swipe event only after some checks to make sure that the gesture is really a swipe gesture.

You can handle that event in the script section of your component, remember to import nuxtApp:

<script setup>

import { useNuxtApp } from '#app'

const nuxtApp = useNuxtApp()

nuxtApp.$bus.$on('swipe', (direction) => {
    switch (direction) {
        case 'left': 
            // swiped left, do things
            break;
        case 'right':
            // swiped right, do things
            break;
        case 'up':
            // swiped up, do things
            break;
        case 'down':
            // swiped down, do things
            break;
        default:
            break;
    }
})

</script>

Examples

Swipe navigation with Swipe component as Default Layout

layouts/default.vue

<template>
    <Swipe>
        <slot />
    </Swipe>
</template>
  
<script setup>
import { useNuxtApp, useRoute, navigateTo } from '#app'

const nuxtApp = useNuxtApp()
const routes = ['/', '/about']

nuxtApp.$bus.$on('swipe', (direction) => {
    let indexCurrentRoute = routes.indexOf(useRoute().path)
    if (direction === 'left' && routes[indexCurrentRoute + 1]) {
        indexCurrentRoute += 1
    }
    if (direction === 'right' && routes[indexCurrentRoute - 1]) {
        indexCurrentRoute -= 1
    }
    return navigateTo(routes[indexCurrentRoute])
})

</script>
  

Demo

demo-nuxt-swipe.pages.dev

Roadmap

  • Typescript correct syntax

  • Swipe handling during the touchEvent and not just at touchend

License

MIT

Keywords

gesture

FAQs

Package last updated on 13 Dec 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts