2016-10-26 19:03:55 +02:00
|
|
|
<template>
|
2020-10-28 07:53:23 +01:00
|
|
|
<div :class="[classes.root, 'Timeline']">
|
2018-12-17 17:14:38 +01:00
|
|
|
<div :class="classes.header">
|
2020-07-28 08:40:04 +02:00
|
|
|
<TimelineMenu v-if="!embedded" />
|
2019-07-05 09:17:44 +02:00
|
|
|
<button
|
2020-11-10 11:52:54 +01:00
|
|
|
v-if="showLoadButton"
|
2020-11-24 11:32:42 +01:00
|
|
|
class="button-default loadmore-button"
|
2019-07-05 09:17:44 +02:00
|
|
|
@click.prevent="showNewStatuses"
|
|
|
|
>
|
2020-06-30 16:37:36 +02:00
|
|
|
{{ loadButtonString }}
|
2018-09-03 21:12:18 +02:00
|
|
|
</button>
|
2019-07-05 09:17:44 +02:00
|
|
|
<div
|
2020-06-30 16:02:38 +02:00
|
|
|
v-else
|
2019-07-05 09:17:44 +02:00
|
|
|
class="loadmore-text faint"
|
|
|
|
@click.prevent
|
|
|
|
>
|
|
|
|
{{ $t('timeline.up_to_date') }}
|
2017-06-21 16:15:45 +02:00
|
|
|
</div>
|
2021-02-25 09:56:16 +01:00
|
|
|
<TimelineQuickSettings v-if="!embedded" />
|
2017-03-05 18:00:35 +01:00
|
|
|
</div>
|
2018-12-17 17:14:38 +01:00
|
|
|
<div :class="classes.body">
|
2020-09-29 12:18:37 +02:00
|
|
|
<div
|
|
|
|
ref="timeline"
|
|
|
|
class="timeline"
|
|
|
|
>
|
2022-03-24 13:09:25 +01:00
|
|
|
<conversation
|
|
|
|
v-for="statusId in filteredPinnedStatusIds"
|
|
|
|
:key="statusId + '-pinned'"
|
|
|
|
class="status-fadein"
|
|
|
|
:status-id="statusId"
|
|
|
|
:collapsable="true"
|
|
|
|
:pinned-status-ids-object="pinnedStatusIdsObject"
|
|
|
|
:in-profile="inProfile"
|
|
|
|
:profile-user-id="userId"
|
|
|
|
/>
|
|
|
|
<conversation
|
|
|
|
v-for="status in filteredVisibleStatuses"
|
|
|
|
:key="status.id"
|
|
|
|
class="status-fadein"
|
|
|
|
:status-id="status.id"
|
|
|
|
:collapsable="true"
|
|
|
|
:in-profile="inProfile"
|
|
|
|
:profile-user-id="userId"
|
|
|
|
:virtual-hidden="virtualScrollingEnabled && !statusesToDisplay.includes(status.id)"
|
|
|
|
/>
|
2016-11-06 17:44:05 +01:00
|
|
|
</div>
|
2017-03-01 20:36:37 +01:00
|
|
|
</div>
|
2018-12-17 17:14:38 +01:00
|
|
|
<div :class="classes.footer">
|
2019-07-05 09:17:44 +02:00
|
|
|
<div
|
|
|
|
v-if="count===0"
|
2021-03-08 18:18:43 +01:00
|
|
|
class="new-status-notification text-center faint"
|
2019-07-05 09:17:44 +02:00
|
|
|
>
|
|
|
|
{{ $t('timeline.no_statuses') }}
|
2019-02-20 16:13:28 +01:00
|
|
|
</div>
|
2019-07-05 09:17:44 +02:00
|
|
|
<div
|
|
|
|
v-else-if="bottomedOut"
|
2021-03-08 18:18:43 +01:00
|
|
|
class="new-status-notification text-center faint"
|
2019-07-05 09:17:44 +02:00
|
|
|
>
|
|
|
|
{{ $t('timeline.no_more_statuses') }}
|
2019-01-29 20:04:52 +01:00
|
|
|
</div>
|
2020-11-24 11:32:42 +01:00
|
|
|
<button
|
2020-11-10 11:52:54 +01:00
|
|
|
v-else-if="!timeline.loading"
|
2020-11-24 13:52:01 +01:00
|
|
|
class="button-unstyled -link -fullwidth"
|
2019-07-05 09:17:44 +02:00
|
|
|
@click.prevent="fetchOlderStatuses()"
|
|
|
|
>
|
2021-03-08 18:18:43 +01:00
|
|
|
<div class="new-status-notification text-center">
|
2020-11-24 15:10:03 +01:00
|
|
|
{{ $t('timeline.load_older') }}
|
|
|
|
</div>
|
2020-11-24 11:32:42 +01:00
|
|
|
</button>
|
2019-07-05 09:17:44 +02:00
|
|
|
<div
|
|
|
|
v-else
|
2021-03-08 18:18:43 +01:00
|
|
|
class="new-status-notification text-center"
|
2019-07-05 09:17:44 +02:00
|
|
|
>
|
2020-10-20 23:31:16 +02:00
|
|
|
<FAIcon
|
|
|
|
icon="circle-notch"
|
|
|
|
spin
|
|
|
|
size="lg"
|
|
|
|
/>
|
2019-01-29 20:04:52 +01:00
|
|
|
</div>
|
2018-04-11 18:34:40 +02:00
|
|
|
</div>
|
2016-10-26 19:03:55 +02:00
|
|
|
</div>
|
|
|
|
</template>
|
2018-12-17 17:14:38 +01:00
|
|
|
|
2016-10-26 19:03:55 +02:00
|
|
|
<script src="./timeline.js"></script>
|
2017-01-15 15:44:56 +01:00
|
|
|
|
2021-03-11 14:14:30 +01:00
|
|
|
<style src="./timeline.scss" lang="scss"> </style>
|