2016-10-26 17:03:55 +00:00
|
|
|
<template>
|
2022-04-20 16:44:31 +00:00
|
|
|
<div :class="['Timeline', classes.root]">
|
2018-12-17 16:14:38 +00:00
|
|
|
<div :class="classes.header">
|
2022-08-11 22:27:09 +00:00
|
|
|
<TimelineMenu
|
|
|
|
v-if="!embedded"
|
|
|
|
:timeline-name="timelineName"
|
|
|
|
/>
|
2022-08-17 17:49:20 +00:00
|
|
|
<button
|
|
|
|
v-if="showScrollTop"
|
|
|
|
class="button-unstyled scroll-to-top-button"
|
|
|
|
type="button"
|
|
|
|
@click="scrollToTop"
|
|
|
|
>
|
2022-08-24 19:31:48 +00:00
|
|
|
<FALayers class="fa-scale-110 fa-old-padding-layer">
|
|
|
|
<FAIcon icon="arrow-up" />
|
|
|
|
<FAIcon
|
|
|
|
icon="minus"
|
|
|
|
transform="up-7"
|
|
|
|
/>
|
|
|
|
</FALayers>
|
2022-08-17 17:49:20 +00:00
|
|
|
</button>
|
2022-09-28 18:16:05 +00:00
|
|
|
<template v-if="mobileLayout && !embedded">
|
|
|
|
<div
|
|
|
|
class="timeline-header-button"
|
2022-08-24 19:31:48 +00:00
|
|
|
v-if="showLoadButton"
|
|
|
|
>
|
2022-09-28 18:16:05 +00:00
|
|
|
<button
|
|
|
|
class="button-unstyled loadmore-button"
|
|
|
|
@click.prevent="showNewStatuses"
|
|
|
|
>
|
|
|
|
<FAIcon
|
|
|
|
fixed-width
|
|
|
|
icon="circle-plus"
|
|
|
|
/>
|
|
|
|
<div class="alert-dot" />
|
|
|
|
</button>
|
|
|
|
</div>
|
2022-08-24 19:31:48 +00:00
|
|
|
<div
|
|
|
|
v-else-if="!embedded"
|
2022-09-28 18:16:05 +00:00
|
|
|
class="loadmore-text faint veryfaint timeline-header-icon"
|
2022-08-24 19:31:48 +00:00
|
|
|
@click.prevent
|
|
|
|
>
|
|
|
|
<FAIcon
|
|
|
|
fixed-width
|
|
|
|
icon="check"
|
|
|
|
/>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
<template v-else>
|
|
|
|
<button
|
|
|
|
v-if="showLoadButton"
|
|
|
|
class="button-default loadmore-button"
|
|
|
|
@click.prevent="showNewStatuses"
|
|
|
|
>
|
|
|
|
{{ loadButtonString }}
|
|
|
|
</button>
|
|
|
|
<div
|
|
|
|
v-else-if="!embedded"
|
|
|
|
class="loadmore-text faint"
|
|
|
|
@click.prevent
|
|
|
|
>
|
|
|
|
{{ $t('timeline.up_to_date') }}
|
|
|
|
</div>
|
|
|
|
</template>
|
2022-09-28 18:16:05 +00:00
|
|
|
<QuickFilterSettings v-if="!embedded" class="timeline-header-button"/>
|
|
|
|
<QuickViewSettings v-if="!embedded" class="timeline-header-button"/>
|
2017-03-05 17:00:35 +00:00
|
|
|
</div>
|
2018-12-17 16:14:38 +00:00
|
|
|
<div :class="classes.body">
|
2020-09-29 10:18:37 +00:00
|
|
|
<div
|
|
|
|
ref="timeline"
|
|
|
|
class="timeline"
|
|
|
|
>
|
2022-03-24 12:09:25 +00: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 16:44:05 +00:00
|
|
|
</div>
|
2017-03-01 19:36:37 +00:00
|
|
|
</div>
|
2018-12-17 16:14:38 +00:00
|
|
|
<div :class="classes.footer">
|
2022-07-31 09:35:48 +00:00
|
|
|
<teleport
|
|
|
|
:to="footerSlipgate"
|
|
|
|
:disabled="!embedded || !footerSlipgate"
|
|
|
|
>
|
2022-04-25 20:50:22 +00:00
|
|
|
<div
|
|
|
|
v-if="count===0"
|
|
|
|
class="new-status-notification text-center faint"
|
|
|
|
>
|
|
|
|
{{ $t('timeline.no_statuses') }}
|
2020-11-24 14:10:03 +00:00
|
|
|
</div>
|
2022-04-25 20:50:22 +00:00
|
|
|
<div
|
|
|
|
v-else-if="bottomedOut"
|
|
|
|
class="new-status-notification text-center faint"
|
|
|
|
>
|
|
|
|
{{ $t('timeline.no_more_statuses') }}
|
|
|
|
</div>
|
|
|
|
<button
|
|
|
|
v-else-if="!timeline.loading"
|
|
|
|
class="button-unstyled -link"
|
|
|
|
@click.prevent="fetchOlderStatuses()"
|
|
|
|
>
|
|
|
|
<div class="new-status-notification text-center">
|
|
|
|
{{ $t('timeline.load_older') }}
|
|
|
|
</div>
|
|
|
|
</button>
|
|
|
|
<div
|
|
|
|
v-else
|
|
|
|
class="new-status-notification text-center"
|
|
|
|
>
|
|
|
|
<FAIcon
|
|
|
|
icon="circle-notch"
|
|
|
|
spin
|
|
|
|
size="lg"
|
|
|
|
/>
|
|
|
|
</div>
|
|
|
|
</teleport>
|
2018-04-11 16:34:40 +00:00
|
|
|
</div>
|
2016-10-26 17:03:55 +00:00
|
|
|
</div>
|
|
|
|
</template>
|
2018-12-17 16:14:38 +00:00
|
|
|
|
2016-10-26 17:03:55 +00:00
|
|
|
<script src="./timeline.js"></script>
|
2017-01-15 14:44:56 +00:00
|
|
|
|
2021-03-11 13:14:30 +00:00
|
|
|
<style src="./timeline.scss" lang="scss"> </style>
|