From 4df3976dedde11ed569c27f200d2e7d5c4cc2b11 Mon Sep 17 00:00:00 2001 From: Zephyrrus Date: Mon, 29 Jun 2020 16:02:23 +0300 Subject: fix: dispatch logout from axios if token expires --- src/site/plugins/axios.js | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/site/plugins') diff --git a/src/site/plugins/axios.js b/src/site/plugins/axios.js index cc6d98e..843a258 100644 --- a/src/site/plugins/axios.js +++ b/src/site/plugins/axios.js @@ -13,6 +13,10 @@ export default function({ $axios, store }) { text: error.response.data.message, error: true }); + + if (error.response.data.message.indexOf('Token expired') !== -1) { + store.dispatch('logout'); + } } }); } -- cgit v1.2.3 From 720ffaf0083564c85a07d66a6d303f34706add41 Mon Sep 17 00:00:00 2001 From: Zephyrrus Date: Thu, 2 Jul 2020 02:50:55 +0300 Subject: feat: start refactoring the code to actually use vuex This includes creating multiple stores as needed for components and removing all complex states from components (since all those states should be stored in vuex) --- src/site/plugins/axios.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/site/plugins') diff --git a/src/site/plugins/axios.js b/src/site/plugins/axios.js index 843a258..cff149c 100644 --- a/src/site/plugins/axios.js +++ b/src/site/plugins/axios.js @@ -1,21 +1,22 @@ export default function({ $axios, store }) { $axios.setHeader('accept', 'application/vnd.lolisafe.json'); + $axios.onRequest(config => { - if (store.state.token) { - config.headers.common['Authorization'] = `bearer ${store.state.token}`; + if (store.state.auth.token) { + config.headers.common['Authorization'] = `bearer ${store.state.auth.token}`; } }); $axios.onError(error => { if (process.env.development) console.error('[AXIOS Error]', error); if (process.browser) { - store.dispatch('alert', { + store.dispatch('alert/set', { text: error.response.data.message, error: true }); if (error.response.data.message.indexOf('Token expired') !== -1) { - store.dispatch('logout'); + store.dispatch('auth/logout'); } } }); -- cgit v1.2.3 From b4603fd64e271c9c419e7d0269c4493f3253cadf Mon Sep 17 00:00:00 2001 From: Zephyrrus Date: Sat, 4 Jul 2020 03:53:06 +0300 Subject: fix: fix axios plugin throwing if no message from backend --- src/site/plugins/axios.js | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'src/site/plugins') diff --git a/src/site/plugins/axios.js b/src/site/plugins/axios.js index cff149c..2f4a169 100644 --- a/src/site/plugins/axios.js +++ b/src/site/plugins/axios.js @@ -8,14 +8,23 @@ export default function({ $axios, store }) { }); $axios.onError(error => { - if (process.env.development) console.error('[AXIOS Error]', error); + if (process.env.NODE_ENV !== 'production') console.error('[AXIOS Error]', error); if (process.browser) { - store.dispatch('alert/set', { - text: error.response.data.message, - error: true - }); + 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) { + if (error.response?.data?.message.indexOf('Token expired') !== -1) { store.dispatch('auth/logout'); } } -- cgit v1.2.3 From 766e74cc51138b32482f65f0f2647eb9d943103e Mon Sep 17 00:00:00 2001 From: Zephyrrus Date: Sun, 5 Jul 2020 04:18:08 +0300 Subject: feat: add video preview on hover to dashboard and apply new linter rules to some of the files --- src/site/plugins/notifier.js | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/site/plugins/notifier.js (limited to 'src/site/plugins') diff --git a/src/site/plugins/notifier.js b/src/site/plugins/notifier.js new file mode 100644 index 0000000..bcf7878 --- /dev/null +++ b/src/site/plugins/notifier.js @@ -0,0 +1,7 @@ +export default ({ store }, inject) => { + inject('notifier', { + showMessage({ content = '', type = '' }) { + store.commit('alert/set', { content, color }); + } + }); +}; -- cgit v1.2.3 From fb0bc57542a44dcc94149f393d8a4ff0c2e7902b Mon Sep 17 00:00:00 2001 From: Zephyrrus Date: Tue, 7 Jul 2020 02:02:59 +0300 Subject: feat: try fixing THE SHITTY WATERFALL --- src/site/plugins/notifier.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/site/plugins') diff --git a/src/site/plugins/notifier.js b/src/site/plugins/notifier.js index bcf7878..f37b96e 100644 --- a/src/site/plugins/notifier.js +++ b/src/site/plugins/notifier.js @@ -1,7 +1,7 @@ export default ({ store }, inject) => { inject('notifier', { showMessage({ content = '', type = '' }) { - store.commit('alert/set', { content, color }); - } + store.commit('alert/set', { content, type }); + }, }); }; -- cgit v1.2.3 From ad852de51a0d2dd5d29c08838d5a430c58849e74 Mon Sep 17 00:00:00 2001 From: Zephyrrus Date: Wed, 8 Jul 2020 04:00:12 +0300 Subject: chore: linter the entire project using the new rules --- src/site/plugins/axios.js | 12 ++++++------ src/site/plugins/flexsearch.js | 5 +++-- src/site/plugins/nuxt-client-init.js | 2 +- src/site/plugins/vue-isyourpasswordsafe.js | 2 +- src/site/plugins/vue-timeago.js | 2 +- 5 files changed, 12 insertions(+), 11 deletions(-) (limited to 'src/site/plugins') diff --git a/src/site/plugins/axios.js b/src/site/plugins/axios.js index 2f4a169..378f922 100644 --- a/src/site/plugins/axios.js +++ b/src/site/plugins/axios.js @@ -1,25 +1,25 @@ -export default function({ $axios, store }) { +export default function ({ $axios, store }) { $axios.setHeader('accept', 'application/vnd.lolisafe.json'); - $axios.onRequest(config => { + $axios.onRequest((config) => { if (store.state.auth.token) { - config.headers.common['Authorization'] = `bearer ${store.state.auth.token}`; + config.headers.common.Authorization = `bearer ${store.state.auth.token}`; } }); - $axios.onError(error => { + $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 + error: true, }); } else { store.dispatch('alert/set', { text: `[AXIOS]: ${error.message}`, - error: true + error: true, }); } } diff --git a/src/site/plugins/flexsearch.js b/src/site/plugins/flexsearch.js index 595b180..8640232 100644 --- a/src/site/plugins/flexsearch.js +++ b/src/site/plugins/flexsearch.js @@ -1,16 +1,17 @@ import Vue from 'vue'; import FlexSearch from 'flexsearch'; + const search = new FlexSearch('speed'); // https://github.com/nextapps-de/flexsearch Vue.prototype.$search = { - items: async items => { + items: async (items) => { await search.clear(); await search.add(items); }, do: async (term, field) => { const results = await search.search(term, { field }); return results; - } + }, }; diff --git a/src/site/plugins/nuxt-client-init.js b/src/site/plugins/nuxt-client-init.js index 4b10dcd..01f33ff 100644 --- a/src/site/plugins/nuxt-client-init.js +++ b/src/site/plugins/nuxt-client-init.js @@ -1,3 +1,3 @@ -export default async ctx => { +export default async (ctx) => { await ctx.store.dispatch('nuxtClientInit', ctx); }; diff --git a/src/site/plugins/vue-isyourpasswordsafe.js b/src/site/plugins/vue-isyourpasswordsafe.js index 6172ca0..68f313a 100644 --- a/src/site/plugins/vue-isyourpasswordsafe.js +++ b/src/site/plugins/vue-isyourpasswordsafe.js @@ -3,5 +3,5 @@ import VueIsYourPasswordSafe from 'vue-isyourpasswordsafe'; Vue.use(VueIsYourPasswordSafe, { minLength: 6, - maxLength: 64 + maxLength: 64, }); diff --git a/src/site/plugins/vue-timeago.js b/src/site/plugins/vue-timeago.js index 28f3c6d..81e6e75 100644 --- a/src/site/plugins/vue-timeago.js +++ b/src/site/plugins/vue-timeago.js @@ -4,5 +4,5 @@ import VueTimeago from 'vue-timeago'; Vue.use(VueTimeago, { name: 'timeago', locale: 'en-US', - locales: { 'en-US': require('vue-timeago/locales/en-US.json') } + locales: { 'en-US': require('vue-timeago/locales/en-US.json') }, }); -- cgit v1.2.3 From 495a23c3a53b8f1e9f885163129d962cbd3e8c2b Mon Sep 17 00:00:00 2001 From: Zephyrrus Date: Thu, 9 Jul 2020 02:21:35 +0300 Subject: =?UTF-8?q?feat:=20add=20notifier=20plugin=20for=20=F0=9F=90=8D=20?= =?UTF-8?q?and=20=F0=9F=8D=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/site/plugins/notifier.js | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'src/site/plugins') diff --git a/src/site/plugins/notifier.js b/src/site/plugins/notifier.js index f37b96e..4fe1262 100644 --- a/src/site/plugins/notifier.js +++ b/src/site/plugins/notifier.js @@ -1,7 +1,25 @@ +import AlertTypes from '~/constants/alertTypes'; + export default ({ store }, inject) => { inject('notifier', { - showMessage({ content = '', type = '' }) { - store.commit('alert/set', { content, type }); + 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, }); }; -- cgit v1.2.3 From 704578e964741da85b29eeb32cb7e447c3a4c19b Mon Sep 17 00:00:00 2001 From: Zephyrrus Date: Thu, 9 Jul 2020 02:22:48 +0300 Subject: feat: add handler for actions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Takes care of dispatching a 🍞 on success/error --- src/site/plugins/handler.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/site/plugins/handler.js (limited to 'src/site/plugins') diff --git a/src/site/plugins/handler.js b/src/site/plugins/handler.js new file mode 100644 index 0000000..3d85b15 --- /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; + } + }, + }); +}; -- cgit v1.2.3 From 0f66d807035d3e32a66c7dc9bf55fb3be99aedac Mon Sep 17 00:00:00 2001 From: Zephyrrus Date: Fri, 10 Jul 2020 01:13:51 +0300 Subject: refactor: finish refactoring all the components to use vuex --- src/site/plugins/axios.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/site/plugins') diff --git a/src/site/plugins/axios.js b/src/site/plugins/axios.js index 378f922..0308d39 100644 --- a/src/site/plugins/axios.js +++ b/src/site/plugins/axios.js @@ -24,9 +24,9 @@ export default function ({ $axios, store }) { } } - if (error.response?.data?.message.indexOf('Token expired') !== -1) { + /* if (error.response?.data?.message.indexOf('Token expired') !== -1) { store.dispatch('auth/logout'); - } + } */ } }); } -- cgit v1.2.3 From c93ddb09008c45942544b13bbb03319c367f9cd8 Mon Sep 17 00:00:00 2001 From: Zephyrrus Date: Sun, 19 Jul 2020 22:27:11 +0300 Subject: feat: Start working on a new album/tags/image info modal --- src/site/plugins/buefy.js | 1 + 1 file changed, 1 insertion(+) (limited to 'src/site/plugins') diff --git a/src/site/plugins/buefy.js b/src/site/plugins/buefy.js index 58bf28f..f3f7552 100644 --- a/src/site/plugins/buefy.js +++ b/src/site/plugins/buefy.js @@ -1,4 +1,5 @@ import Vue from 'vue'; import Buefy from 'buefy'; +// import 'buefy/dist/buefy.css'; Vue.use(Buefy); -- cgit v1.2.3 From 90001c2df56d58e69fd199a518ae7f3e4ed327fc Mon Sep 17 00:00:00 2001 From: Zephyrrus Date: Thu, 24 Dec 2020 10:40:50 +0200 Subject: chore: remove trailing commas --- src/site/plugins/axios.js | 4 ++-- src/site/plugins/flexsearch.js | 2 +- src/site/plugins/handler.js | 6 +++--- src/site/plugins/notifier.js | 2 +- src/site/plugins/vue-isyourpasswordsafe.js | 2 +- src/site/plugins/vue-timeago.js | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) (limited to 'src/site/plugins') diff --git a/src/site/plugins/axios.js b/src/site/plugins/axios.js index 0308d39..98bec5c 100644 --- a/src/site/plugins/axios.js +++ b/src/site/plugins/axios.js @@ -14,12 +14,12 @@ export default function ({ $axios, store }) { if (error.response?.data?.message) { store.dispatch('alert/set', { text: error.response.data.message, - error: true, + error: true }); } else { store.dispatch('alert/set', { text: `[AXIOS]: ${error.message}`, - error: true, + error: true }); } } diff --git a/src/site/plugins/flexsearch.js b/src/site/plugins/flexsearch.js index 8640232..1c06c8d 100644 --- a/src/site/plugins/flexsearch.js +++ b/src/site/plugins/flexsearch.js @@ -13,5 +13,5 @@ Vue.prototype.$search = { do: async (term, field) => { const results = await search.search(term, { field }); return results; - }, + } }; diff --git a/src/site/plugins/handler.js b/src/site/plugins/handler.js index 3d85b15..7933eab 100644 --- a/src/site/plugins/handler.js +++ b/src/site/plugins/handler.js @@ -8,18 +8,18 @@ export default ({ store }, inject) => { store.commit('alert/set', { message: response?.message ?? 'Executed sucesfully', - type: AlertTypes.SUCCESS, + type: AlertTypes.SUCCESS }); return response; } catch (e) { store.commit('alert/set', { message: e.message, - type: AlertTypes.ERROR, + type: AlertTypes.ERROR }); return null; } - }, + } }); }; diff --git a/src/site/plugins/notifier.js b/src/site/plugins/notifier.js index 4fe1262..465df6d 100644 --- a/src/site/plugins/notifier.js +++ b/src/site/plugins/notifier.js @@ -20,6 +20,6 @@ export default ({ store }, inject) => { error(message, snackbar) { this.showMessage({ message, type: AlertTypes.ERROR, snackbar }); }, - types: AlertTypes, + types: AlertTypes }); }; diff --git a/src/site/plugins/vue-isyourpasswordsafe.js b/src/site/plugins/vue-isyourpasswordsafe.js index 68f313a..6172ca0 100644 --- a/src/site/plugins/vue-isyourpasswordsafe.js +++ b/src/site/plugins/vue-isyourpasswordsafe.js @@ -3,5 +3,5 @@ import VueIsYourPasswordSafe from 'vue-isyourpasswordsafe'; Vue.use(VueIsYourPasswordSafe, { minLength: 6, - maxLength: 64, + maxLength: 64 }); diff --git a/src/site/plugins/vue-timeago.js b/src/site/plugins/vue-timeago.js index 81e6e75..28f3c6d 100644 --- a/src/site/plugins/vue-timeago.js +++ b/src/site/plugins/vue-timeago.js @@ -4,5 +4,5 @@ import VueTimeago from 'vue-timeago'; Vue.use(VueTimeago, { name: 'timeago', locale: 'en-US', - locales: { 'en-US': require('vue-timeago/locales/en-US.json') }, + locales: { 'en-US': require('vue-timeago/locales/en-US.json') } }); -- cgit v1.2.3