Switch from moment.js to vue-timeago.

Much smaller filesize for vendor.js, although we'll have to see if all
the intervals are ok.
This commit is contained in:
Roger Braun 2016-11-28 17:37:47 +01:00
parent 2f7e5c8770
commit cc00eb898f
8 changed files with 17 additions and 29 deletions

View file

@ -36,7 +36,6 @@ const conversation = {
const conversationId = this.status.statusnet_conversation_id
this.$store.state.api.backendInteractor.fetchConversation({id: conversationId})
.then((statuses) => this.$store.dispatch('addNewStatuses', { statuses }))
.then(() => this.$store.commit('updateTimestamps'))
} else {
const id = this.$route.params.id
this.$store.state.api.backendInteractor.fetchStatus({id})

View file

@ -1,6 +1,6 @@
import Status from '../status/status.vue'
// Temporary
import { prepareStatus, updateTimestampsInStatuses } from '../../modules/statuses.js'
import { prepareStatus } from '../../modules/statuses.js'
import { map } from 'lodash'
const Mentions = {
@ -20,7 +20,7 @@ const Mentions = {
created () {
this.$store.state.api.backendInteractor.fetchMentions({username: this.username})
.then((mentions) => {
this.mentions = updateTimestampsInStatuses(map(mentions, prepareStatus))
this.mentions = map(mentions, prepareStatus)
})
}
}

View file

@ -23,7 +23,7 @@
-
<small>
<router-link :to="{ name: 'conversation', params: { id: status.id } }">
{{status.created_at_parsed}}
<timeago :since="status.created_at" :auto-update="60"></timeago>
</router-link>
</small>
<small v-if="!status.is_local" class="source_url">

View file

@ -12,8 +12,16 @@ import statusesModule from './modules/statuses.js'
import usersModule from './modules/users.js'
import apiModule from './modules/api.js'
import VueTimeago from 'vue-timeago'
Vue.use(Vuex)
Vue.use(VueRouter)
Vue.use(VueTimeago, {
locale: 'en-US',
locales: {
'en-US': require('vue-timeago/locales/en-US.json')
}
})
const store = new Vuex.Store({
modules: {

View file

@ -1,5 +1,4 @@
import { remove, map, slice, sortBy, toInteger, each, find, flatten, maxBy, last, merge, max, isArray } from 'lodash'
import moment from 'moment'
import { remove, slice, sortBy, toInteger, each, find, flatten, maxBy, last, merge, max, isArray } from 'lodash'
import apiService from '../services/api/api.service.js'
// import parse from '../services/status_parser/status_parser.js'
@ -46,22 +45,9 @@ export const prepareStatus = (status) => {
status.nsfw = !!status.text.match(nsfwRegex)
}
// Set created_at_parsed to initial value
status.created_at_parsed = status.created_at
return status
}
export const updateTimestampsInStatuses = (statuses) => {
return map(statuses, (statusoid) => {
const status = statusoid.retweeted_status || statusoid
// Parse date
status.created_at_parsed = moment(status.created_at).fromNow()
return status
})
}
export const statusType = (status) => {
if (status.is_post_verb) {
return 'status'
@ -236,9 +222,6 @@ export const mutations = {
oldTimeline.newStatusCount = 0
oldTimeline.visibleStatuses = slice(oldTimeline.statuses, 0, 50)
},
updateTimestamps (state) {
updateTimestampsInStatuses(state.allStatuses)
},
setFavorited (state, { status, value }) {
const newStatus = find(state.allStatuses, status)
newStatus.favorited = value

View file

@ -10,8 +10,6 @@ const update = ({store, statuses, timeline, showImmediately}) => {
statuses,
showImmediately
})
store.commit('updateTimestamps')
}
const fetchAndUpdate = ({store, credentials, timeline = 'friends', older = false, showImmediately = false}) => {