Redraw ago datetime every minute

This commit is contained in:
Eliot Berriot 2018-03-01 23:46:32 +01:00
parent 2d12c56b90
commit 40350f0555
No known key found for this signature in database
GPG Key ID: DD6965E2476E5C27
4 changed files with 32 additions and 2 deletions

View File

@ -44,6 +44,10 @@ export default {
}, },
created () { created () {
this.$store.dispatch('instance/fetchSettings') this.$store.dispatch('instance/fetchSettings')
setInterval(() => {
// used to redraw ago dates every minute
self.$store.commit('ui/computeLastDate')
}, 1000 * 60)
} }
} }
</script> </script>

View File

@ -1,8 +1,20 @@
<template> <template>
<time :datetime="date" :title="date | moment">{{ date | ago }}</time> <time :datetime="date" :title="date | moment">{{ realDate | ago }}</time>
</template> </template>
<script> <script>
import {mapState} from 'vuex'
export default { export default {
props: ['date'] props: ['date'],
computed: {
...mapState({
lastDate: state => state.ui.lastDate
}),
realDate () {
if (this.lastDate) {
// dummy code to trigger a recompute to update the ago render
}
return this.date
}
}
} }
</script> </script>

View File

@ -8,11 +8,13 @@ import instance from './instance'
import queue from './queue' import queue from './queue'
import radios from './radios' import radios from './radios'
import player from './player' import player from './player'
import ui from './ui'
Vue.use(Vuex) Vue.use(Vuex)
export default new Vuex.Store({ export default new Vuex.Store({
modules: { modules: {
ui,
auth, auth,
favorites, favorites,
instance, instance,

12
front/src/store/ui.js Normal file
View File

@ -0,0 +1,12 @@
export default {
namespaced: true,
state: {
lastDate: new Date()
},
mutations: {
computeLastDate: (state) => {
state.lastDate = new Date()
}
}
}