|
@@ -60,8 +60,30 @@
|
|
</md-option>
|
|
</md-option>
|
|
</md-select>
|
|
</md-select>
|
|
</md-field>
|
|
</md-field>
|
|
|
|
+
|
|
|
|
+ <!-- Feed Content -->
|
|
|
|
+ <md-list v-for="headline in feed" :key="headline.id" class="md-triple-line">
|
|
|
|
+ <md-list-item>
|
|
|
|
+ <md-avatar><img :src="headline.utlToImage" :alt="headline.title"></md-avatar>
|
|
|
|
+
|
|
|
|
+ <div class="md-list-item-text">
|
|
|
|
+ <span><a :href="headline.url" target="_blank">{{ headline.title }}</a></span>
|
|
|
|
+ <span>{{ headline.source.name }}</span>
|
|
|
|
+ <span>View comments</span>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ <md-button class="md-icon-button md-list-action">
|
|
|
|
+ <md-icon class="md-accent">
|
|
|
|
+ delete
|
|
|
|
+ </md-icon>
|
|
|
|
+ </md-button>
|
|
|
|
+ </md-list-item>
|
|
|
|
+
|
|
|
|
+ <md-divider class="md-inset"></md-divider>
|
|
|
|
+ </md-list>
|
|
</md-drawer>
|
|
</md-drawer>
|
|
|
|
|
|
|
|
+ <!-- News categories (Right Drawer) -->
|
|
<md-drawer :md-active.sync="showRightSidepanel" class="md-right" md-fixed>
|
|
<md-drawer :md-active.sync="showRightSidepanel" class="md-right" md-fixed>
|
|
<md-toolbar :md-elevation="1">
|
|
<md-toolbar :md-elevation="1">
|
|
<span class="md-title">News Categories</span>
|
|
<span class="md-title">News Categories</span>
|
|
@@ -118,7 +140,7 @@
|
|
</md-card-content>
|
|
</md-card-content>
|
|
|
|
|
|
<md-card-actions>
|
|
<md-card-actions>
|
|
- <md-button class="md-icon-button">
|
|
|
|
|
|
+ <md-button @click="addHeadlineToFeed(headline)" class="md-icon-button">
|
|
<md-icon>bookmark</md-icon>
|
|
<md-icon>bookmark</md-icon>
|
|
</md-button>
|
|
</md-button>
|
|
<md-button class="md-icon-button">
|
|
<md-button class="md-icon-button">
|
|
@@ -168,6 +190,9 @@ export default {
|
|
user () {
|
|
user () {
|
|
return this.$store.getters.user
|
|
return this.$store.getters.user
|
|
},
|
|
},
|
|
|
|
+ feed () {
|
|
|
|
+ return this.$store.getters.feed
|
|
|
|
+ },
|
|
isAuthenticated () {
|
|
isAuthenticated () {
|
|
return this.$store.getters.isAuthenticated
|
|
return this.$store.getters.isAuthenticated
|
|
}
|
|
}
|
|
@@ -179,6 +204,7 @@ export default {
|
|
},
|
|
},
|
|
async fetch ({ store }) {
|
|
async fetch ({ store }) {
|
|
await store.dispatch('loadHeadLines', `/api/top-headlines?country=${store.state.country}&category=${store.state.category}`)
|
|
await store.dispatch('loadHeadLines', `/api/top-headlines?country=${store.state.country}&category=${store.state.category}`)
|
|
|
|
+ // await store.dispatch('loadUserFeed')
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
async loadCategory (category) {
|
|
async loadCategory (category) {
|
|
@@ -190,6 +216,11 @@ export default {
|
|
},
|
|
},
|
|
logoutUser () {
|
|
logoutUser () {
|
|
this.$store.dispatch('logoutUser')
|
|
this.$store.dispatch('logoutUser')
|
|
|
|
+ },
|
|
|
|
+ async addHeadlineToFeed (headline) {
|
|
|
|
+ if (this.user) {
|
|
|
|
+ await this.$store.dispatch('addHeadlineToFeed', headline)
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|