commit: eab256a7e5ed540f07be3018f9ae593fc6d2d880
parent: 534f2e8195523ffae83ed85f4e9fddf2939929e3
Author: Roger Braun <roger@rogerbraun.net>
Date: Fri, 28 Oct 2016 15:40:13 +0200
New status showing.
Diffstat:
5 files changed, 23 insertions(+), 4 deletions(-)
diff --git a/src/components/friends_timeline/friends_timeline.vue b/src/components/friends_timeline/friends_timeline.vue
@@ -2,7 +2,7 @@
<div class="timeline panel panel-default">
<div class="panel-heading">Friends Timeline</div>
<div class="panel-body">
- <Timeline v-bind:timeline="timeline" />
+ <Timeline v-bind:timeline="timeline" v-bind:timeline-name="'friends'"/>
</div>
</div>
</template>
diff --git a/src/components/public_timeline/public_timeline.vue b/src/components/public_timeline/public_timeline.vue
@@ -2,7 +2,7 @@
<div class="timeline panel panel-default">
<div class="panel-heading">Public Timeline</div>
<div class="panel-body">
- <Timeline v-bind:timeline="timeline" />
+ <Timeline v-bind:timeline="timeline" v-bind:timeline-name="'public'"/>
</div>
</div>
</template>
diff --git a/src/components/timeline/timeline.js b/src/components/timeline/timeline.js
@@ -2,10 +2,16 @@ import Status from '../status/status.vue'
const Timeline = {
props: [
- 'timeline'
+ 'timeline',
+ 'timelineName'
],
components: {
Status
+ },
+ methods: {
+ showNewStatuses () {
+ this.$store.commit('showNewStatuses', { timeline: this.timelineName })
+ }
}
}
diff --git a/src/components/timeline/timeline.vue b/src/components/timeline/timeline.vue
@@ -1,5 +1,12 @@
<template>
<div class="timeline">
+ <a href="#" v-on:click.prevent='showNewStatuses()' v-if="timeline.newStatusCount > 0">
+ <div class="new-status-notification">
+ <p class="text-center" >
+ {{timeline.newStatusCount}} new statuses
+ </p>
+ </div>
+ </a>
<status v-for="status in timeline.visibleStatuses" v-bind:status="status"></status>
</div>
</template>
diff --git a/src/modules/statuses.js b/src/modules/statuses.js
@@ -1,4 +1,4 @@
-import { last, intersectionBy, sortBy, unionBy, toInteger, groupBy, differenceBy, each, find } from 'lodash'
+import { slice, last, intersectionBy, sortBy, unionBy, toInteger, groupBy, differenceBy, each, find } from 'lodash'
// import moment from 'moment'
const defaultState = {
@@ -93,6 +93,12 @@ const statuses = {
addNewStatuses (state, { statuses, showImmediately = false, timeline }) {
state.timelines[timeline] = addStatusesToTimeline(statuses, showImmediately, state.timelines[timeline])
state.allStatuses = unionBy(state.timelines[timeline].statuses, state.allStatuses.id)
+ },
+ showNewStatuses (state, { timeline }) {
+ const oldTimeline = (state.timelines[timeline])
+
+ oldTimeline.newStatusCount = 0
+ oldTimeline.visibleStatuses = slice(oldTimeline.statuses, 0, 50)
}
}
}