0.0.6 • Published 4 years ago

@symbol-it/nuxtjs-notification-module v0.0.6

Weekly downloads
1
License
MIT
Repository
github
Last release
4 years ago

@Symbol-it/nuxtjs-notification-module

Notification module for nuxtjs

Features

- Notification store

Installation

Npm

npm i @symbol-it/nuxtjs-notification-module --save

Declare the module in ./nuxt.config.js

  modules: [
    ...
    '@symbol-it/nuxtjs-notification-module'
    ...
  ],

Methods

Client side use this.$notification.<method>

Server side use $notification.<method>

MethodsDescription
addNotification(type, message)Push notification in store
addSuccess(message)Push success notification in store
addError(message)Push error notification in store
addInfo(message)Push info notification in store
addWarning(message)Push warning notification in store
resetNotification()Clear notification in store
getType()Retrieve default types notification

Implementations

  • Create your vue notification component
<template>
  <v-alert :type="type">
    {{ message }}
  </v-alert>
</template>

<script>

export default {
  name: 'Notification',
  props: {
    message: {
      type: String,
      required: true
    },
    type: {
      type: String,
      default: () => 'info',
      validator (value) {
        return [
          'success',
          'warning',
          'info',
          'error'
        ].includes(value)
      }
    }
  }
}
</script>
  • Add your component in your layout
<template>
  <v-app>
    <v-main>
      <v-container>
        <notification v-if="notification" :type="notification.type" :message="notification.message" />
        <nuxt />
      </v-container>
    </v-main>
  </v-app>
</template>

<script>
import Notification from '../components/notification/Notification.vue'

export default {
  components: {
    Notification,
  },
  computed: {
    notification () {
      return this.$notification.getNotification()
    }
  },
  watch: {
    '$route' (to, from) {
      this.$notification.resetNotification()
    }
  }
}
</script>
  • Push notification
<template>
   <form-login @submit="login" />
</template>
<script>
import FormLogin from '../components/form/FormLogin.vue'
export default {
  components: {
    FormLogin
  },
  methods: {
    async login (form) {
      try {
        await this.$strapi.login({ identifier: form.email, password: form.password })
        await this.$router.push({ path: '/dashboard' })
      } catch (e) {
        this.$notification.addError('my error')
      }
    },
  },
}
</script>
0.0.3

4 years ago

0.0.2

4 years ago

0.0.5

4 years ago

0.0.4

4 years ago

0.0.6

4 years ago

0.0.1

4 years ago