logo

pleroma-fe

My custom branche(s) on git.pleroma.social/pleroma/pleroma-fe
commit: eab256a7e5ed540f07be3018f9ae593fc6d2d880
parent: 534f2e8195523ffae83ed85f4e9fddf2939929e3
Author: Roger Braun <roger@rogerbraun.net>
Date:   Fri, 28 Oct 2016 15:40:13 +0200

New status showing.

Diffstat:

Msrc/components/friends_timeline/friends_timeline.vue2+-
Msrc/components/public_timeline/public_timeline.vue2+-
Msrc/components/timeline/timeline.js8+++++++-
Msrc/components/timeline/timeline.vue7+++++++
Msrc/modules/statuses.js8+++++++-
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) } } }