diff options
| author | HJ <30-hj@users.noreply.git.pleroma.social> | 2024-10-04 10:11:49 +0000 |
|---|---|---|
| committer | HJ <30-hj@users.noreply.git.pleroma.social> | 2024-10-04 10:11:49 +0000 |
| commit | bb0a7a81c5c5e9947471ccffff629af9ee6d6185 (patch) | |
| tree | e67dca18d5f0343ae798e60bfec7d7969e54856f /src/modules/bookmark_folders.js | |
| parent | a1c3a7a742ea86b0ddeb67a42ca27f478f0f22a2 (diff) | |
| parent | 216ca52073212942ffb6f75b63993a5f5c32a5d6 (diff) | |
Merge branch 'bookmark-folders' into 'develop'
Bookmark folders
Closes #1335
See merge request pleroma/pleroma-fe!1945
Diffstat (limited to 'src/modules/bookmark_folders.js')
| -rw-r--r-- | src/modules/bookmark_folders.js | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/src/modules/bookmark_folders.js b/src/modules/bookmark_folders.js new file mode 100644 index 00000000..c276adf4 --- /dev/null +++ b/src/modules/bookmark_folders.js @@ -0,0 +1,66 @@ +import { remove, find } from 'lodash' + +export const defaultState = { + allFolders: [] +} + +export const mutations = { + setBookmarkFolders (state, value) { + state.allFolders = value + }, + setBookmarkFolder (state, { id, name, emoji, emoji_url: emojiUrl }) { + const entry = find(state.allFolders, { id }) + if (!entry) { + state.allFolders.push({ id, name, emoji, emoji_url: emojiUrl }) + } else { + entry.name = name + entry.emoji = emoji + entry.emoji_url = emojiUrl + } + }, + deleteBookmarkFolder (state, { folderId }) { + remove(state.allFolders, folder => folder.id === folderId) + } +} + +const actions = { + setBookmarkFolders ({ commit }, value) { + commit('setBookmarkFolders', value) + }, + createBookmarkFolder ({ rootState, commit }, { name, emoji }) { + return rootState.api.backendInteractor.createBookmarkFolder({ name, emoji }) + .then((folder) => { + commit('setBookmarkFolder', folder) + return folder + }) + }, + setBookmarkFolder ({ rootState, commit }, { folderId, name, emoji }) { + return rootState.api.backendInteractor.updateBookmarkFolder({ folderId, name, emoji }) + .then((folder) => { + commit('setBookmarkFolder', folder) + return folder + }) + }, + deleteBookmarkFolder ({ rootState, commit }, { folderId }) { + rootState.api.backendInteractor.deleteBookmarkFolder({ folderId }) + commit('deleteBookmarkFolder', { folderId }) + } +} + +export const getters = { + findBookmarkFolderName: state => id => { + const folder = state.allFolders.find(folder => folder.id === id) + + if (!folder) return + return folder.name + } +} + +const bookmarkFolders = { + state: defaultState, + mutations, + actions, + getters +} + +export default bookmarkFolders |
