summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDevlin Junker <devlin.junker@gmail.com>2023-08-24 17:12:27 -0700
committerBenjamin Brahmer <info@b-brahmer.de>2023-08-26 07:48:18 +0200
commitd4d20e91e5cdd801f837cbd296e1e798cbcfbf12 (patch)
tree5deef72826264c6506a3239d048c572b80a626f9 /src
parent8183510385bad408ea3f0136bd4a5487ba7df526 (diff)
Add more unit tests and all passing
Signed-off-by: Devlin Junker <devlin.junker@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/components/FeedItemDisplay.vue43
-rw-r--r--src/components/Unread.vue1
2 files changed, 36 insertions, 8 deletions
diff --git a/src/components/FeedItemDisplay.vue b/src/components/FeedItemDisplay.vue
index edb576b5f..5818fad51 100644
--- a/src/components/FeedItemDisplay.vue
+++ b/src/components/FeedItemDisplay.vue
@@ -129,28 +129,55 @@ export default Vue.extend({
...mapState(['feeds']),
},
methods: {
- clearSelected() {
+ /**
+ * Sends message to state to clear the selectedId number
+ */
+ clearSelected(): void {
this.$store.commit(MUTATIONS.SET_SELECTED_ITEM, { id: undefined })
},
- formatDate(epoch: number) {
+ /**
+ * Returns locale formatted date string
+ *
+ * @param {number} epoch date value in epoch format
+ * @return {string} locale formatted date string (based on users browser)
+ */
+ formatDate(epoch: number): string {
return new Date(epoch).toLocaleString()
},
- formatDatetime(epoch: number) {
+ /**
+ * Returns UTC formatted datetime in format recognized by `datetime` property
+ *
+ * @param {number} epoch date value in epoch format
+ * @return {string} UTC formatted datetime string (in format yyyy-MM-ddTHH:mm:ssZ)
+ */
+ formatDatetime(epoch: number): string {
return new Date(epoch).toISOString()
},
+ /**
+ * Retrieve the feed by id number
+ *
+ * @param {number} id id of feed to fetch
+ * @return {Feed} associated Feed
+ */
getFeed(id: number): Feed {
return this.$store.getters.feeds.find((feed: Feed) => feed.id === id) || {}
},
- getMediaType(mime: any): 'audio' | 'video' | false {
+ /**
+ * Sends message to change the items starred property to the opposite value
+ *
+ * @param {FeedItem} item item to toggle starred status on
+ */
+ toggleStarred(item: FeedItem): void {
+ this.$store.dispatch(item.starred ? ACTIONS.UNSTAR_ITEM : ACTIONS.STAR_ITEM, { item })
+ },
+
+ getMediaType(mime: string): 'audio' | 'video' | false {
// TODO: figure out how to check media type
return false
},
- play(item: any) {
+ play(item: FeedItem) {
// TODO: implement play audio/video
},
- toggleStarred(item: FeedItem): void {
- this.$store.dispatch(item.starred ? ACTIONS.UNSTAR_ITEM : ACTIONS.STAR_ITEM, { item })
- },
},
})
diff --git a/src/components/Unread.vue b/src/components/Unread.vue
index 195623245..9a59f529b 100644
--- a/src/components/Unread.vue
+++ b/src/components/Unread.vue
@@ -26,6 +26,7 @@ import { FeedItem } from '../types/FeedItem'
import { ACTIONS, MUTATIONS } from '../store'
type UnreadItemState = {
+ // need cache so we aren't always removing items when they get read
unreadCache?: FeedItem[]
}