Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F85712964
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
7 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/src/stores/bookmark_folders.js b/src/stores/bookmark_folders.js
index 6ffec807bd..713a21d009 100644
--- a/src/stores/bookmark_folders.js
+++ b/src/stores/bookmark_folders.js
@@ -1,85 +1,85 @@
import { find, remove } from 'lodash'
import { defineStore } from 'pinia'
import { useOAuthStore } from 'src/stores/oauth.js'
import {
createBookmarkFolder,
deleteBookmarkFolder,
fetchBookmarkFolders,
updateBookmarkFolder,
} from 'src/api/user.js'
import { promiseInterval } from 'src/services/promise_interval/promise_interval.js'
export const useBookmarkFoldersStore = defineStore('bookmarkFolders', {
state: () => ({
allFolders: [],
}),
getters: {
findBookmarkFolderName() {
return (id) => {
const folder = this.allFolders.find((folder) => folder.id === id)
if (!folder) return
return folder.name
}
},
},
actions: {
startFetching() {
- promiseInterval(() => {
- this.fetcher = fetchBookmarkFolders({
+ this.fetcher = promiseInterval(() => {
+ fetchBookmarkFolders({
credentials: useOAuthStore().token,
})
.then(({ data: folders }) => this.setBookmarkFolders(folders))
.catch((e) => {
console.error(e)
})
}, 240000)
},
stopFetching() {
this.fetcher?.stop()
},
setBookmarkFolders(value) {
this.allFolders = value
},
setBookmarkFolder({ id, name, emoji, emoji_url: emojiUrl }) {
const entry = find(this.allFolders, { id })
if (!entry) {
this.allFolders.push({ id, name, emoji, emoji_url: emojiUrl })
} else {
entry.name = name
entry.emoji = emoji
entry.emoji_url = emojiUrl
}
},
createBookmarkFolder({ name, emoji }) {
return createBookmarkFolder({
name,
emoji,
credentials: useOAuthStore().token,
}).then(({ data: folder }) => {
this.setBookmarkFolder(folder)
return folder
})
},
updateBookmarkFolder({ folderId, name, emoji }) {
return updateBookmarkFolder({
credentials: useOAuthStore().token,
folderId,
name,
emoji,
}).then(({ data: folder }) => {
this.setBookmarkFolder(folder)
return folder
})
},
deleteBookmarkFolder({ folderId }) {
deleteBookmarkFolder({
folderId,
credentials: useOAuthStore().token,
})
remove(this.allFolders, (folder) => folder.id === folderId)
},
},
})
diff --git a/src/stores/lists.js b/src/stores/lists.js
index 7634f10619..37471d46e9 100644
--- a/src/stores/lists.js
+++ b/src/stores/lists.js
@@ -1,169 +1,169 @@
import { find, remove } from 'lodash'
import { defineStore } from 'pinia'
import { useOAuthStore } from 'src/stores/oauth.js'
import {
addAccountsToList,
createList,
deleteList,
fetchLists,
getList,
getListAccounts,
removeAccountsFromList,
updateList,
} from 'src/api/user.js'
import { promiseInterval } from 'src/services/promise_interval/promise_interval.js'
export const useListsStore = defineStore('lists', {
state: () => ({
fetcher: null,
allLists: [],
allListsObject: {},
}),
getters: {
findListTitle() {
return (id) => {
if (!this.allListsObject[id]) return
return this.allListsObject[id].title
}
},
findListAccounts() {
return (id) => [...this.allListsObject[id].accountIds]
},
},
actions: {
startFetching() {
- promiseInterval(() => {
- this.fetcher = fetchLists({
+ this.fetcher = promiseInterval(() => {
+ fetchLists({
credentials: useOAuthStore().token,
})
.then(({ data: lists }) => this.setLists(lists))
.catch((e) => {
console.error(e)
})
}, 240000)
},
stopFetching() {
this.fetcher?.stop()
},
setLists(value) {
this.allLists = value
},
async createList({ title }) {
return await createList({
title,
credentials: useOAuthStore().token,
}).then(({ data: list }) => {
this.setList({ listId: list.id, title })
return list
})
},
async fetchList({ listId }) {
return await getList({
listId,
credentials: useOAuthStore().token,
}).then(({ data: list }) =>
this.setList({ listId: list.id, title: list.title }),
)
},
async fetchListAccounts({ listId }) {
return await getListAccounts({
listId,
credentials: useOAuthStore().token,
}).then(({ data: accountIds }) => {
if (!this.allListsObject[listId]) {
this.allListsObject[listId] = { accountIds: [] }
}
this.allListsObject[listId].accountIds = accountIds
})
},
async setList({ listId, title }) {
await updateList({
listId,
title,
credentials: useOAuthStore().token,
})
if (!this.allListsObject[listId]) {
this.allListsObject[listId] = { accountIds: [] }
}
this.allListsObject[listId].title = title
const entry = find(this.allLists, { id: listId })
if (!entry) {
this.allLists.push({ id: listId, title })
} else {
entry.title = title
}
},
async setListAccounts({ listId, accountIds }) {
const saved = this.allListsObject[listId]?.accountIds || []
const added = accountIds.filter((id) => !saved.includes(id))
const removed = saved.filter((id) => !accountIds.includes(id))
if (!this.allListsObject[listId]) {
this.allListsObject[listId] = { accountIds: [] }
}
this.allListsObject[listId].accountIds = accountIds
const promises = []
if (added.length > 0) {
promises.push(
addAccountsToList({
listId,
accountIds: added,
credentials: useOAuthStore().token,
}),
)
}
if (removed.length > 0) {
promises.push(
removeAccountsFromList({
listId,
accountIds: removed,
credentials: useOAuthStore().token,
}),
)
}
await Promise.all(promises)
},
async addListAccount({ listId, accountId }) {
return await addAccountsToList({
listId,
accountIds: [accountId],
credentials: useOAuthStore().token,
}).then((result) => {
if (!this.allListsObject[listId]) {
this.allListsObject[listId] = { accountIds: [] }
}
this.allListsObject[listId].accountIds.push(accountId)
return result
})
},
async removeListAccount({ listId, accountId }) {
return await removeAccountsFromList({
listId,
accountIds: [accountId],
credentials: useOAuthStore().token,
}).then((result) => {
if (!this.allListsObject[listId]) {
this.allListsObject[listId] = { accountIds: [] }
}
const { accountIds } = this.allListsObject[listId]
const set = new Set(accountIds)
set.delete(accountId)
this.allListsObject[listId].accountIds = [...set]
return result
})
},
async deleteList({ listId }) {
await deleteList({
listId,
credentials: useOAuthStore().token,
})
delete this.allListsObject[listId]
remove(this.allLists, (list) => list.id === listId)
},
},
})
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Sat, Sep 19, 2:00 PM (19 h, 6 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1767635
Default Alt Text
(7 KB)
Attached To
Mode
rPUFE pleroma-fe-upstream
Attached
Detach File
Event Timeline
Log In to Comment