Commit 37327177 authored by Sébastien Chopin's avatar Sébastien Chopin

chore: improvements

parent f08f5949
...@@ -21,9 +21,6 @@ ...@@ -21,9 +21,6 @@
import { feeds } from '~/common/api' import { feeds } from '~/common/api'
export default { export default {
computed: {
feeds: () => feeds
},
head () { head () {
const host = process.server const host = process.server
? this.$ssrContext.req.headers.host ? this.$ssrContext.req.headers.host
...@@ -35,6 +32,9 @@ export default { ...@@ -35,6 +32,9 @@ export default {
{ rel: 'canonical', href: `https://${host}${this.$route.path}` } { rel: 'canonical', href: `https://${host}${this.$route.path}` }
] ]
} }
},
computed: {
feeds: () => feeds
} }
} }
</script> </script>
......
...@@ -40,7 +40,7 @@ export default { ...@@ -40,7 +40,7 @@ export default {
], ],
serverMiddleware: [ serverMiddleware: [
(req, res, next) => { (_, res, next) => {
res.setHeader('Cache-Control', 's-maxage=10, stale-while-revalidate') res.setHeader('Cache-Control', 's-maxage=10, stale-while-revalidate')
next() next()
} }
......
...@@ -33,18 +33,18 @@ ...@@ -33,18 +33,18 @@
"nuxt": "^2.14.12" "nuxt": "^2.14.12"
}, },
"devDependencies": { "devDependencies": {
"@nuxtjs/eslint-config": "^3.1.0", "@nuxtjs/eslint-config": "^5.0.0",
"@nuxtjs/pwa": "3.3.5", "@nuxtjs/pwa": "3.3.5",
"babel-eslint": "^10.1.0", "babel-eslint": "^10.1.0",
"eslint": "^7.19.0", "eslint": "^7.19.0",
"eslint-config-standard": "^14.1.1", "eslint-config-standard": "^16.0.2",
"eslint-plugin-import": "^2.22.1", "eslint-plugin-import": "^2.22.1",
"eslint-plugin-jest": "^23.20.0", "eslint-plugin-jest": "^24.1.3",
"eslint-plugin-node": "^11.1.0", "eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^4.2.1", "eslint-plugin-promise": "^4.2.1",
"eslint-plugin-standard": "^4.1.0", "eslint-plugin-standard": "^4.1.0",
"eslint-plugin-vue": "^7.5.0", "eslint-plugin-vue": "^7.5.0",
"stylus": "^0.54.8", "stylus": "^0.54.8",
"stylus-loader": "^3.0.2" "stylus-loader": "^4.3.3"
} }
} }
...@@ -5,9 +5,9 @@ ...@@ -5,9 +5,9 @@
<lazy-wrapper :loading="loading"> <lazy-wrapper :loading="loading">
<transition :name="transition" mode="out-in"> <transition :name="transition" mode="out-in">
<div :key="displayedPage" class="news-list"> <div :key="displayedPage" class="news-list">
<transition-group tag="ul" name="item"> <ul>
<item v-for="item in displayedItems" :key="item.id" :item="item" /> <item v-for="item in displayedItems" :key="item.id" :item="item" />
</transition-group> </ul>
</div> </div>
</transition> </transition>
<item-list-nav :feed="feed" :page="page" :max-page="maxPage" /> <item-list-nav :feed="feed" :page="page" :max-page="maxPage" />
...@@ -32,16 +32,22 @@ export default { ...@@ -32,16 +32,22 @@ export default {
return validFeeds.includes(feed) return validFeeds.includes(feed)
}, },
data () {
return {
transition: 'slide-right',
displayedPage: Number(this.page) || 1
}
},
fetch () { fetch () {
const { feed, page = 1 } = this.$route.params const { feed, page = 1 } = this.$route.params
return this.$store.dispatch('FETCH_FEED', { page: Number(page) || 1, feed }) return this.$store.dispatch('FETCH_FEED', { page: Number(page) || 1, feed })
}, },
data () { head () {
return { return {
transition: 'slide-right', title: feeds[this.$route.params.feed].title
displayedPage: Number(this.page) || 1
} }
}, },
...@@ -56,7 +62,7 @@ export default { ...@@ -56,7 +62,7 @@ export default {
return feeds[this.feed].pages return feeds[this.feed].pages
}, },
pageData () { pageData () {
return this.$store.state.feeds[this.feed][this.page] return this.$store.state.feeds[this.feed][this.page] || []
}, },
displayedItems () { displayedItems () {
return this.pageData.map(id => this.$store.state.items[id]) return this.pageData.map(id => this.$store.state.items[id])
...@@ -67,6 +73,7 @@ export default { ...@@ -67,6 +73,7 @@ export default {
}, },
watch: { watch: {
feed: '$fetch',
page: 'pageChanged' page: 'pageChanged'
}, },
...@@ -95,12 +102,6 @@ export default { ...@@ -95,12 +102,6 @@ export default {
this.displayedPage = to this.displayedPage = to
} }
},
head () {
return {
title: feeds[this.$route.params.feed].title
}
} }
} }
</script> </script>
......
...@@ -2,7 +2,9 @@ import Vue from 'vue' ...@@ -2,7 +2,9 @@ import Vue from 'vue'
const currentTime = new Date().getTime() const currentTime = new Date().getTime()
Vue.mixin({ if (!Vue.__SWR_MIXIN__) {
Vue.__SWR_MIXIN__ = true
Vue.mixin({
mounted () { mounted () {
if ( if (
'$fetch' in this && '$fetch' in this &&
...@@ -12,7 +14,8 @@ Vue.mixin({ ...@@ -12,7 +14,8 @@ Vue.mixin({
this.$fetch() this.$fetch()
} }
} }
}) })
}
export default function ({ store }) { export default function ({ store }) {
store.registerModule('swr', { store.registerModule('swr', {
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment