diff options
Diffstat (limited to 'src/site')
| -rw-r--r-- | src/site/store/.eslintrc.json | 5 | ||||
| -rw-r--r-- | src/site/store/admin.js | 0 | ||||
| -rw-r--r-- | src/site/store/album.js | 5 | ||||
| -rw-r--r-- | src/site/store/albums.js | 1 | ||||
| -rw-r--r-- | src/site/store/alert.js | 7 | ||||
| -rw-r--r-- | src/site/store/auth.js | 17 | ||||
| -rw-r--r-- | src/site/store/config.js | 5 | ||||
| -rw-r--r-- | src/site/store/images.js | 45 | ||||
| -rw-r--r-- | src/site/store/index.js | 5 |
9 files changed, 47 insertions, 43 deletions
diff --git a/src/site/store/.eslintrc.json b/src/site/store/.eslintrc.json new file mode 100644 index 0000000..052e3ef --- /dev/null +++ b/src/site/store/.eslintrc.json @@ -0,0 +1,5 @@ +{ + "rules": { + "no-shadow": ["error", { "allow": ["state"] }] + } +} diff --git a/src/site/store/admin.js b/src/site/store/admin.js new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/site/store/admin.js diff --git a/src/site/store/album.js b/src/site/store/album.js index f7c88c9..d8ffacc 100644 --- a/src/site/store/album.js +++ b/src/site/store/album.js @@ -1,4 +1,3 @@ -/* eslint-disable no-shadow */ export const state = () => ({ files: [], name: null, @@ -36,6 +35,10 @@ export const actions = { dispatch('alert/set', { text: e.message, error: true }, { root: true }); } }, + // TODO: Fix duplicate code between this store and files store + deleteFile({ commit }, fileId) { + + }, }; export const mutations = { diff --git a/src/site/store/albums.js b/src/site/store/albums.js index f3d7bcf..2b4ac60 100644 --- a/src/site/store/albums.js +++ b/src/site/store/albums.js @@ -1,4 +1,3 @@ -/* eslint-disable no-shadow */ import Vue from 'vue'; export const state = () => ({ diff --git a/src/site/store/alert.js b/src/site/store/alert.js index 78c0eaf..ff38e09 100644 --- a/src/site/store/alert.js +++ b/src/site/store/alert.js @@ -1,7 +1,6 @@ -/* eslint-disable no-shadow */ const getDefaultState = () => ({ text: null, - error: false + error: false, }); export const state = getDefaultState; @@ -12,7 +11,7 @@ export const actions = { }, clear({ commit }) { commit('clear'); - } + }, }; export const mutations = { @@ -22,5 +21,5 @@ export const mutations = { }, clear(state) { Object.assign(state, getDefaultState()); - } + }, }; diff --git a/src/site/store/auth.js b/src/site/store/auth.js index 55009ce..69de9ec 100644 --- a/src/site/store/auth.js +++ b/src/site/store/auth.js @@ -1,8 +1,5 @@ -/* eslint-disable no-shadow */ -// only used so I could keep the convention of naming the first param as "state" in mutations const getDefaultState = () => ({ loggedIn: false, - isLoading: false, user: null, token: null, }); @@ -23,18 +20,14 @@ export const actions = { dispatch('alert/set', { text: e.message, error: true }, { root: true }); } }, - async login({ commit, dispatch }, { username, password }) { + async login({ commit }, { username, password }) { commit('loginRequest'); - try { - const data = await this.$axios.$post('auth/login', { username, password }); - this.$axios.setToken(data.token, 'Bearer'); + const data = await this.$axios.$post('auth/login', { username, password }); + this.$axios.setToken(data.token, 'Bearer'); - commit('setToken', data.token); - commit('loginSuccess', { token: data.token, user: data.user }); - } catch (e) { - dispatch('alert/set', { text: e.message, error: true }, { root: true }); - } + commit('setToken', data.token); + commit('loginSuccess', { token: data.token, user: data.user }); }, async fetchCurrentUser({ commit, dispatch }) { try { diff --git a/src/site/store/config.js b/src/site/store/config.js index 6202f84..f52fc0f 100644 --- a/src/site/store/config.js +++ b/src/site/store/config.js @@ -1,4 +1,3 @@ -/* eslint-disable no-shadow */ export const state = () => ({ development: true, version: '4.0.0', @@ -9,11 +8,11 @@ export const state = () => ({ chunkSize: 90, maxLinksPerAlbum: 5, publicMode: false, - userAccounts: false + userAccounts: false, }); export const mutations = { set(state, config) { Object.assign(state, config); - } + }, }; diff --git a/src/site/store/images.js b/src/site/store/images.js index 14f475a..d02219f 100644 --- a/src/site/store/images.js +++ b/src/site/store/images.js @@ -1,19 +1,21 @@ -/* eslint-disable no-shadow */ export const state = () => ({ files: [], isLoading: false, pagination: { page: 1, limit: 30, - totalFiles: 0 - } + totalFiles: 0, + }, + name: null, + downloadEnabled: false, }); export const getters = { getTotalFiles: ({ pagination }) => pagination.totalFiles, getFetchedCount: ({ files }) => files.length, shouldPaginate: ({ pagination }) => pagination.totalFiles > pagination.limit, - getLimit: ({ pagination }) => pagination.limit + getLimit: ({ pagination }) => pagination.limit, + getName: ({ name }) => name, }; export const actions = { @@ -23,34 +25,37 @@ export const actions = { page = page || 1; try { - const response = await this.$axios.$get(`files`, { params: { limit: state.pagination.limit, page } }); + const response = await this.$axios.$get('files', { params: { limit: state.pagination.limit, page } }); - commit('setFiles', { files: response.files }); - commit('updatePaginationMeta', { totalFiles: response.count, page }); + commit('setFilesAndMeta', { ...response, page }); } catch (e) { dispatch('alert/set', { text: e.message, error: true }, { root: true }); } }, - async fetchById({ commit, dispatch }) { - try { - const response = await this.$axios.$get('verify'); - commit('loginSuccess', response); - } catch (e) { - dispatch('alert/set', { text: e.message, error: true }, { root: true }); - } - } + async fetchByAlbumId({ commit, dispatch, state }, { id, page }) { + commit('setIsLoading'); + + page = page || 1; + + const response = await this.$axios.$get(`album/${id}/full`, { + params: { limit: state.pagination.limit, page }, + }); + + commit('setFilesAndMeta', { ...response, page }); + }, }; export const mutations = { setIsLoading(state) { state.isLoading = true; }, - setFiles(state, { files }) { + setFilesAndMeta(state, { + files, name, page, count, + }) { state.files = files || []; + state.name = name ?? null; state.isLoading = false; - }, - updatePaginationMeta(state, { page, totalFiles }) { state.pagination.page = page || 1; - state.pagination.totalFiles = totalFiles || 0; - } + state.pagination.totalFiles = count || 0; + }, }; diff --git a/src/site/store/index.js b/src/site/store/index.js index 8f910ae..c0faffb 100644 --- a/src/site/store/index.js +++ b/src/site/store/index.js @@ -1,5 +1,6 @@ import config from '../../../dist/config.json'; +// eslint-disable-next-line import/prefer-default-export export const actions = { async nuxtClientInit({ commit, dispatch }) { commit('config/set', config); @@ -8,8 +9,8 @@ export const actions = { if (!cookies.token) return dispatch('auth/logout'); commit('auth/setToken', cookies.token); - await dispatch('auth/verify'); - } + return dispatch('auth/verify'); + }, /* alert({ commit }, payload) { if (!payload) return commit('alert', null); commit('alert', { |