diff options
| author | Pitu <[email protected]> | 2021-01-04 01:04:20 +0900 |
|---|---|---|
| committer | Pitu <[email protected]> | 2021-01-04 01:04:20 +0900 |
| commit | fcd39dc550dec8dbcb8325e07e938c5024cbc33d (patch) | |
| tree | f41acb4e0d5fd3c3b1236fe4324b3fef9ec6eafe /src/site/plugins | |
| parent | Create FUNDING.yml (diff) | |
| parent | chore: update todo (diff) | |
| download | host.fuwn.me-fcd39dc550dec8dbcb8325e07e938c5024cbc33d.tar.xz host.fuwn.me-fcd39dc550dec8dbcb8325e07e938c5024cbc33d.zip | |
Merge branch 'dev'
Diffstat (limited to 'src/site/plugins')
| -rw-r--r-- | src/site/plugins/axios.js | 32 | ||||
| -rw-r--r-- | src/site/plugins/buefy.js | 5 | ||||
| -rw-r--r-- | src/site/plugins/handler.js | 25 | ||||
| -rw-r--r-- | src/site/plugins/notifier.js | 25 | ||||
| -rw-r--r-- | src/site/plugins/nuxt-client-init.js | 3 | ||||
| -rw-r--r-- | src/site/plugins/v-clipboard.js | 4 | ||||
| -rw-r--r-- | src/site/plugins/vue-isyourpasswordsafe.js | 7 | ||||
| -rw-r--r-- | src/site/plugins/vue-timeago.js | 8 | ||||
| -rw-r--r-- | src/site/plugins/vuebar.js | 4 |
9 files changed, 113 insertions, 0 deletions
diff --git a/src/site/plugins/axios.js b/src/site/plugins/axios.js new file mode 100644 index 0000000..1c54488 --- /dev/null +++ b/src/site/plugins/axios.js @@ -0,0 +1,32 @@ +export default function({ $axios, store }) { + $axios.setHeader('accept', 'application/vnd.chibisafe.json'); + + $axios.onRequest(config => { + if (store.state.auth.token) { + config.headers.common.Authorization = `bearer ${store.state.auth.token}`; + } + }); + + $axios.onError(error => { + if (process.env.NODE_ENV !== 'production') console.error('[AXIOS Error]', error); + if (process.browser) { + if (process.env.NODE_ENV !== 'production') { + if (error.response?.data?.message) { + store.dispatch('alert/set', { + text: error.response.data.message, + error: true + }); + } else { + store.dispatch('alert/set', { + text: `[AXIOS]: ${error.message}`, + error: true + }); + } + } + + /* if (error.response?.data?.message.indexOf('Token expired') !== -1) { + store.dispatch('auth/logout'); + } */ + } + }); +} diff --git a/src/site/plugins/buefy.js b/src/site/plugins/buefy.js new file mode 100644 index 0000000..f3f7552 --- /dev/null +++ b/src/site/plugins/buefy.js @@ -0,0 +1,5 @@ +import Vue from 'vue'; +import Buefy from 'buefy'; +// import 'buefy/dist/buefy.css'; + +Vue.use(Buefy); diff --git a/src/site/plugins/handler.js b/src/site/plugins/handler.js new file mode 100644 index 0000000..7933eab --- /dev/null +++ b/src/site/plugins/handler.js @@ -0,0 +1,25 @@ +import AlertTypes from '~/constants/alertTypes'; + +export default ({ store }, inject) => { + inject('handler', { + async executeAction(action, param) { + try { + const response = await store.dispatch(action, param); + + store.commit('alert/set', { + message: response?.message ?? 'Executed sucesfully', + type: AlertTypes.SUCCESS + }); + + return response; + } catch (e) { + store.commit('alert/set', { + message: e.message, + type: AlertTypes.ERROR + }); + + return null; + } + } + }); +}; diff --git a/src/site/plugins/notifier.js b/src/site/plugins/notifier.js new file mode 100644 index 0000000..465df6d --- /dev/null +++ b/src/site/plugins/notifier.js @@ -0,0 +1,25 @@ +import AlertTypes from '~/constants/alertTypes'; + +export default ({ store }, inject) => { + inject('notifier', { + showMessage({ message = '', type = '', snackbar = false }) { + store.commit('alert/set', { message, type, snackbar }); + }, + message(message, snackbar) { + this.showMessage({ message, type: AlertTypes.PRIMARY, snackbar }); + }, + info(message, snackbar) { + this.showMessage({ message, type: AlertTypes.INFO, snackbar }); + }, + warning(message, snackbar) { + this.showMessage({ message, type: AlertTypes.WARNING, snackbar }); + }, + success(message, snackbar) { + this.showMessage({ message, type: AlertTypes.SUCCESS, snackbar }); + }, + error(message, snackbar) { + this.showMessage({ message, type: AlertTypes.ERROR, snackbar }); + }, + types: AlertTypes + }); +}; diff --git a/src/site/plugins/nuxt-client-init.js b/src/site/plugins/nuxt-client-init.js new file mode 100644 index 0000000..4b10dcd --- /dev/null +++ b/src/site/plugins/nuxt-client-init.js @@ -0,0 +1,3 @@ +export default async ctx => { + await ctx.store.dispatch('nuxtClientInit', ctx); +}; diff --git a/src/site/plugins/v-clipboard.js b/src/site/plugins/v-clipboard.js new file mode 100644 index 0000000..f1f6b53 --- /dev/null +++ b/src/site/plugins/v-clipboard.js @@ -0,0 +1,4 @@ +import Vue from 'vue'; +import Clipboard from 'v-clipboard'; + +Vue.use(Clipboard); diff --git a/src/site/plugins/vue-isyourpasswordsafe.js b/src/site/plugins/vue-isyourpasswordsafe.js new file mode 100644 index 0000000..6172ca0 --- /dev/null +++ b/src/site/plugins/vue-isyourpasswordsafe.js @@ -0,0 +1,7 @@ +import Vue from 'vue'; +import VueIsYourPasswordSafe from 'vue-isyourpasswordsafe'; + +Vue.use(VueIsYourPasswordSafe, { + minLength: 6, + maxLength: 64 +}); diff --git a/src/site/plugins/vue-timeago.js b/src/site/plugins/vue-timeago.js new file mode 100644 index 0000000..28f3c6d --- /dev/null +++ b/src/site/plugins/vue-timeago.js @@ -0,0 +1,8 @@ +import Vue from 'vue'; +import VueTimeago from 'vue-timeago'; + +Vue.use(VueTimeago, { + name: 'timeago', + locale: 'en-US', + locales: { 'en-US': require('vue-timeago/locales/en-US.json') } +}); diff --git a/src/site/plugins/vuebar.js b/src/site/plugins/vuebar.js new file mode 100644 index 0000000..18dd4e5 --- /dev/null +++ b/src/site/plugins/vuebar.js @@ -0,0 +1,4 @@ +import Vue from 'vue'; +import Vuebar from 'vuebar'; + +Vue.use(Vuebar); |