perf(RSS): add refresh all rss feeds button to rss articles (#1679)

This commit is contained in:
Arno Fortelny 2024-05-09 06:24:28 -04:00 committed by GitHub
parent bdb013c984
commit 4ddf5f3469
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 31 additions and 1 deletions

View file

@ -549,6 +549,12 @@
"pending": "Marking...",
"success": "{n} articles marked as read"
},
"refreshAllFeeds": "Refresh All Feeds",
"refreshPromise": {
"error": "An error occured while refreshing feeds",
"pending": "Refreshing...",
"success": "{n} feeds refreshed"
},
"title": "RSS Articles"
},
"searchEngine": {

View file

@ -106,7 +106,10 @@ onUnmounted(() => {
<div class="d-flex flex-row align-center justify-center">
<v-checkbox v-model="rssStore.filters.unread" :label="$t('rssArticles.filters.unread')" hide-details />
<v-spacer />
<v-btn :disabled="rssStore.unreadArticles.length === 0" :text="$t('rssArticles.markAllAsRead')" color="primary" @click="rssStore.markAllAsRead()" />
<div :class="{'d-flex button-group': true, 'flex-column': $vuetify.display.mobile}">
<v-btn :disabled="rssStore.unreadArticles.length === 0" :text="$t('rssArticles.markAllAsRead')" color="primary" @click="rssStore.markAllAsRead()" />
<v-btn :disabled="rssStore.feeds.length === 0" :text="$t('rssArticles.refreshAllFeeds')" color="primary" @click="rssStore.refreshAllFeeds()" />
</div>
</div>
</v-col>
</v-row>
@ -187,6 +190,10 @@ onUnmounted(() => {
.description-container {
border: solid red 5px;
}
.button-group {
gap: 8px;
}
</style>
<style lang="scss">

View file

@ -30,6 +30,22 @@ export const useRssStore = defineStore(
await qbit.refreshFeed(feedName)
}
async function refreshAllFeeds() {
await toast.promise(
Promise.all(feeds.value.map(feed => refreshFeed(feed.name))),
{
pending: t('rssArticles.refreshPromise.pending'),
error: t('rssArticles.refreshPromise.error'),
success: t('rssArticles.refreshPromise.success', feeds.value.length)
},
{
autoClose: 1500
}
)
await fetchFeeds()
}
async function createFeed(feedName: string, feedUrl: string) {
await qbit.createFeed({ name: feedName, url: feedUrl })
}
@ -140,6 +156,7 @@ export const useRssStore = defineStore(
articles,
unreadArticles,
refreshFeed,
refreshAllFeeds,
createFeed,
setRule,
renameFeed,