diff --git a/src/components/feed-display/FeedItemDisplayList.vue b/src/components/feed-display/FeedItemDisplayList.vue index bb39433a9..f3dd06d7d 100644 --- a/src/components/feed-display/FeedItemDisplayList.vue +++ b/src/components/feed-display/FeedItemDisplayList.vue @@ -62,6 +62,7 @@ import VirtualScroll from './VirtualScroll.vue' import FeedItemRow from './FeedItemRow.vue' import { FeedItem } from '../../types/FeedItem' +import {ACTIONS, MUTATIONS} from '../../store' const DEFAULT_DISPLAY_LIST_CONFIG = { starFilter: true, @@ -126,6 +127,12 @@ export default Vue.extend({ cfg() { return _.defaults({ ...this.config }, DEFAULT_DISPLAY_LIST_CONFIG) }, + allItems() { + return this.$store.getters.allItems + }, + selectedItem() { + return this.$store.getters.selected + }, }, mounted() { this.mounted = true @@ -177,11 +184,33 @@ export default Vue.extend({ return response.sort(this.sort) }, + // TODO: Make jumpToPreviousItem() work correctly in all circumstances (like the "Unread articles" or "All articles" view) + // TODO: Make jumpToPreviousItem() highlight the current item + // TODO: Make jumpToPreviousItem() set MARK_READ if needed jumpToPreviousItem() { console.log('Previous item') + const currentIndex = this.selectedItem ? this.allItems.findIndex((item: FeedItem) => item.id === this.selectedItem.id) || 0 : 0 + console.log('currentIndex', currentIndex) + if (currentIndex > 0) { + const previousItem = this.allItems[currentIndex - 1] + console.log('previousItem', previousItem) + this.$store.commit(MUTATIONS.SET_SELECTED_ITEM, {id: previousItem.id}) + // this.$store.dispatch(ACTIONS.MARK_READ, { previousItem }) + } }, + // TODO: Make jumpToNextItem() work correctly in all circumstances (like the "Unread articles" or "All articles" view) + // TODO: Make jumpToNextItem() highlight the current item + // TODO: Make jumpToNextItem() set MARK_READ if needed jumpToNextItem() { console.log('Next item') + const currentIndex = this.selectedItem ? this.allItems.findIndex((item: FeedItem) => item.id === this.selectedItem.id) || 0 : 0 + console.log('currentIndex', currentIndex) + if (currentIndex !== -1 && currentIndex < this.allItems.length - 1) { + const nextItem = this.allItems[currentIndex + 1] + console.log('nextItem', nextItem) + this.$store.commit(MUTATIONS.SET_SELECTED_ITEM, { id: nextItem.id }) + // this.$store.dispatch(ACTIONS.MARK_READ, { nextItem }) + } }, }, })