mirror of
https://github.com/pixelfed/pixelfed.git
synced 2024-11-10 00:34:50 +00:00
Update PostComponent.vue, update styling
This commit is contained in:
parent
4c3b0b7d52
commit
844566b9e7
1 changed files with 68 additions and 51 deletions
|
@ -137,60 +137,70 @@
|
||||||
|
|
||||||
<div v-if="showComments">
|
<div v-if="showComments">
|
||||||
<hr>
|
<hr>
|
||||||
<div class="postCommentsLoader text-center">
|
<div class="postCommentsLoader text-center py-2">
|
||||||
<div class="spinner-border" role="status">
|
<div class="spinner-border" role="status">
|
||||||
<span class="sr-only">Loading...</span>
|
<span class="sr-only">Loading...</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="postCommentsContainer d-none">
|
<div class="postCommentsContainer d-none">
|
||||||
<p v-if="status.reply_count > 10"class="mb-1 text-center load-more-link d-none"><a href="#" class="text-muted" v-on:click="loadMore">Load more comments</a></p>
|
<p v-if="status.reply_count > 10" class="mb-1 text-center load-more-link d-none my-3">
|
||||||
|
<a href="#" class="text-dark" v-on:click="loadMore" title="Load more comments" data-toggle="tooltip" data-placement="bottom">
|
||||||
|
<svg class="bi bi-plus-circle" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg" style="font-size:2em;"> <path fill-rule="evenodd" d="M8 3.5a.5.5 0 01.5.5v4a.5.5 0 01-.5.5H4a.5.5 0 010-1h3.5V4a.5.5 0 01.5-.5z" clip-rule="evenodd"/> <path fill-rule="evenodd" d="M7.5 8a.5.5 0 01.5-.5h4a.5.5 0 010 1H8.5V12a.5.5 0 01-1 0V8z" clip-rule="evenodd"/> <path fill-rule="evenodd" d="M8 15A7 7 0 108 1a7 7 0 000 14zm0 1A8 8 0 108 0a8 8 0 000 16z" clip-rule="evenodd"/></svg>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
<div class="comments">
|
<div class="comments">
|
||||||
<div v-for="(reply, index) in results" class="pb-3" :key="'tl' + reply.id + '_' + index">
|
<div v-for="(reply, index) in results" class="pb-4 media" :key="'tl' + reply.id + '_' + index">
|
||||||
<div v-if="reply.sensitive == true">
|
<img :src="reply.account.avatar" class="rounded-circle border mr-3" width="42px" height="42px">
|
||||||
<span class="py-3">
|
<div class="media-body">
|
||||||
<a class="text-dark font-weight-bold mr-1" :href="reply.account.url" v-bind:title="reply.account.username">{{truncate(reply.account.username,15)}}</a>
|
<div v-if="reply.sensitive == true">
|
||||||
<span class="text-break">
|
<span class="py-3">
|
||||||
<span class="font-italic text-muted">This comment may contain sensitive material</span>
|
|
||||||
<span class="text-primary cursor-pointer pl-1" @click="reply.sensitive = false;">Show</span>
|
|
||||||
</span>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div v-else>
|
|
||||||
<p class="d-flex justify-content-between align-items-top read-more" style="overflow-y: hidden;">
|
|
||||||
<span>
|
|
||||||
<a class="text-dark font-weight-bold mr-1" :href="reply.account.url" v-bind:title="reply.account.username">{{truncate(reply.account.username,15)}}</a>
|
<a class="text-dark font-weight-bold mr-1" :href="reply.account.url" v-bind:title="reply.account.username">{{truncate(reply.account.username,15)}}</a>
|
||||||
<span class="text-break" v-html="reply.content"></span>
|
<span class="text-break">
|
||||||
|
<span class="font-italic text-muted">This comment may contain sensitive material</span>
|
||||||
|
<span class="text-primary cursor-pointer pl-1" @click="reply.sensitive = false;">Show</span>
|
||||||
|
</span>
|
||||||
</span>
|
</span>
|
||||||
<span class="pl-2" style="min-width:38px">
|
|
||||||
<span v-on:click="likeReply(reply, $event)"><i v-bind:class="[reply.favourited ? 'fas fa-heart fa-sm text-danger':'far fa-heart fa-sm text-lighter']"></i></span>
|
|
||||||
<post-menu :status="reply" :profile="user" :size="'sm'" :modal="'true'" class="d-inline-block pl-2" v-on:deletePost="deleteComment(reply.id, index)"></post-menu>
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
<p class="">
|
|
||||||
<a v-once class="text-muted mr-3 text-decoration-none small" style="width: 20px;" v-text="timeAgo(reply.created_at)" :href="reply.url"></a>
|
|
||||||
<span v-if="reply.favourites_count" class="text-muted comment-reaction font-weight-bold mr-3">{{reply.favourites_count == 1 ? '1 like' : reply.favourites_count + ' likes'}}</span>
|
|
||||||
<span class="text-muted comment-reaction font-weight-bold cursor-pointer" v-on:click="replyFocus(reply, index)">Reply</span>
|
|
||||||
</p>
|
|
||||||
<div v-if="reply.reply_count > 0" class="cursor-pointer" style="margin-left:30px;" v-on:click="toggleReplies(reply)">
|
|
||||||
<span class="show-reply-bar"></span>
|
|
||||||
<span class="comment-reaction font-weight-bold text-muted">{{reply.thread ? 'Hide' : 'View'}} Replies ({{reply.reply_count}})</span>
|
|
||||||
</div>
|
</div>
|
||||||
<div v-if="reply.thread == true" class="comment-thread">
|
<div v-else>
|
||||||
<div v-for="(s, sindex) in reply.replies" class="pb-3" :key="'cr' + s.id + '_' + index">
|
<p class="d-flex justify-content-between align-items-top read-more" style="overflow-y: hidden;">
|
||||||
<p class="d-flex justify-content-between align-items-top read-more" style="overflow-y: hidden;">
|
<span>
|
||||||
<span>
|
<a class="text-dark font-weight-bold mr-1" :href="reply.account.url" v-bind:title="reply.account.username">{{truncate(reply.account.username,15)}}</a>
|
||||||
<a class="text-dark font-weight-bold mr-1" :href="s.account.url" :title="s.account.username">{{s.account.username}}</a>
|
<span class="text-break " v-html="reply.content"></span>
|
||||||
<span class="text-break" v-html="s.content"></span>
|
</span>
|
||||||
</span>
|
<span class="pl-2">
|
||||||
<span class="pl-2" style="min-width:38px">
|
<!-- <span v-on:click="likeReply(reply, $event)"><i v-bind:class="[reply.favourited ? 'fas fa-heart fa-sm text-danger':'far fa-heart fa-sm text-lighter']"></i></span> -->
|
||||||
<span v-on:click="likeReply(s, $event)"><i v-bind:class="[s.favourited ? 'fas fa-heart fa-sm text-danger':'far fa-heart fa-sm text-lighter']"></i></span>
|
<post-menu :status="reply" :profile="user" :size="'sm'" :modal="'true'" class="d-inline-block px-2" v-on:deletePost="deleteComment(reply.id, index)"></post-menu>
|
||||||
<post-menu :status="s" :profile="user" :size="'sm'" :modal="'true'" class="d-inline-block pl-2" v-on:deletePost="deleteCommentReply(s.id, sindex, index) "></post-menu>
|
</span>
|
||||||
</span>
|
</p>
|
||||||
</p>
|
<p class="">
|
||||||
<p class="">
|
<a v-once class="text-muted mr-3 text-decoration-none small" style="width: 20px;" v-text="timeAgo(reply.created_at)" :href="reply.url"></a>
|
||||||
<a v-once class="text-muted mr-3 text-decoration-none small" style="width: 20px;" v-text="timeAgo(s.created_at)" :href="s.url"></a>
|
<span v-if="reply.favourites_count" class="text-muted comment-reaction font-weight-bold mr-3">{{reply.favourites_count == 1 ? '1 like' : reply.favourites_count + ' likes'}}</span>
|
||||||
<span v-if="s.favourites_count" class="text-muted comment-reaction font-weight-bold mr-3">{{s.favourites_count == 1 ? '1 like' : s.favourites_count + ' likes'}}</span>
|
<span class="text-muted comment-reaction font-weight-bold cursor-pointer" v-on:click="replyFocus(reply, index)">Reply</span>
|
||||||
</p>
|
</p>
|
||||||
|
<div v-if="reply.reply_count > 0" class="cursor-pointer" v-on:click="toggleReplies(reply)">
|
||||||
|
<span class="show-reply-bar"></span>
|
||||||
|
<span class="comment-reaction font-weight-bold text-muted">{{reply.thread ? 'Hide' : 'View'}} Replies ({{reply.reply_count}})</span>
|
||||||
|
</div>
|
||||||
|
<div v-if="reply.thread == true" class="comment-thread">
|
||||||
|
<div v-for="(s, sindex) in reply.replies" class="pb-3 media" :key="'cr' + s.id + '_' + index">
|
||||||
|
<img :src="s.account.avatar" class="rounded-circle border mr-3" width="25px" height="25px">
|
||||||
|
<div class="media-body">
|
||||||
|
<p class="d-flex justify-content-between align-items-top read-more" style="overflow-y: hidden;">
|
||||||
|
<span>
|
||||||
|
<a class="text-dark font-weight-bold mr-1" :href="s.account.url" :title="s.account.username">{{s.account.username}}</a>
|
||||||
|
<span class="text-break" v-html="s.content"></span>
|
||||||
|
</span>
|
||||||
|
<span class="pl-2" style="min-width:38px">
|
||||||
|
<span v-on:click="likeReply(s, $event)"><i v-bind:class="[s.favourited ? 'fas fa-heart fa-sm text-danger':'far fa-heart fa-sm text-lighter']"></i></span>
|
||||||
|
<post-menu :status="s" :profile="user" :size="'sm'" :modal="'true'" class="d-inline-block pl-2" v-on:deletePost="deleteCommentReply(s.id, sindex, index) "></post-menu>
|
||||||
|
</span>
|
||||||
|
</p>
|
||||||
|
<p class="">
|
||||||
|
<a v-once class="text-muted mr-3 text-decoration-none small" style="width: 20px;" v-text="timeAgo(s.created_at)" :href="s.url"></a>
|
||||||
|
<span v-if="s.favourites_count" class="text-muted comment-reaction font-weight-bold mr-3">{{s.favourites_count == 1 ? '1 like' : s.favourites_count + ' likes'}}</span>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -225,7 +235,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="showComments && user.length !== 0" class="card-footer bg-white px-2 py-0">
|
<div v-if="showComments && user.length !== 0" class="card-footer bg-white px-2 py-0">
|
||||||
<ul class="nav align-items-center emoji-reactions" style="overflow-x: scroll;flex-wrap: unset;">
|
<ul class="nav align-items-center emoji-reactions" style="overflow-x: scroll;flex-wrap: unset;">
|
||||||
<li class="nav-item" v-on:click="emojiReaction" v-for="e in emoji">{{e}}</li>
|
<li class="nav-item" v-on:click="emojiReaction" v-for="e in emoji">{{e}}</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -467,9 +477,8 @@
|
||||||
</infinite-loading>
|
</infinite-loading>
|
||||||
</div>
|
</div>
|
||||||
</b-modal>
|
</b-modal>
|
||||||
<b-modal
|
<b-modal ref="lightboxModal"
|
||||||
id="lightbox"
|
id="lightbox"
|
||||||
ref="lightboxModal"
|
|
||||||
:hide-header="true"
|
:hide-header="true"
|
||||||
:hide-footer="true"
|
:hide-footer="true"
|
||||||
centered
|
centered
|
||||||
|
@ -480,7 +489,7 @@
|
||||||
<img :src="lightboxMedia.url" :class="lightboxMedia.filter_class + ' img-fluid'" style="min-height: 100%; min-width: 100%">
|
<img :src="lightboxMedia.url" :class="lightboxMedia.filter_class + ' img-fluid'" style="min-height: 100%; min-width: 100%">
|
||||||
</div>
|
</div>
|
||||||
</b-modal>
|
</b-modal>
|
||||||
<b-modal ref="embedModal"
|
<b-modal ref="embedModal"
|
||||||
id="ctx-embed-modal"
|
id="ctx-embed-modal"
|
||||||
hide-header
|
hide-header
|
||||||
hide-footer
|
hide-footer
|
||||||
|
@ -544,8 +553,7 @@
|
||||||
width: 24px;
|
width: 24px;
|
||||||
}
|
}
|
||||||
.comment-thread {
|
.comment-thread {
|
||||||
margin: 4px 0 0 40px;
|
margin-top: 1rem;
|
||||||
width: calc(100% - 40px);
|
|
||||||
}
|
}
|
||||||
.emoji-reactions .nav-item {
|
.emoji-reactions .nav-item {
|
||||||
font-size: 1.2rem;
|
font-size: 1.2rem;
|
||||||
|
@ -557,6 +565,12 @@
|
||||||
height: 0px;
|
height: 0px;
|
||||||
background: transparent;
|
background: transparent;
|
||||||
}
|
}
|
||||||
|
@media (min-width: 1200px) {
|
||||||
|
.container {
|
||||||
|
max-width: 1100px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
<style type="text/css" scoped>
|
<style type="text/css" scoped>
|
||||||
.momentui .bg-dark {
|
.momentui .bg-dark {
|
||||||
|
@ -647,6 +661,7 @@ export default {
|
||||||
|
|
||||||
updated() {
|
updated() {
|
||||||
$('.carousel').carousel();
|
$('.carousel').carousel();
|
||||||
|
// $('[data-toggle="tooltip"]').tooltip();
|
||||||
if(this.showReadMore == true) {
|
if(this.showReadMore == true) {
|
||||||
window.pixelfed.readmore();
|
window.pixelfed.readmore();
|
||||||
}
|
}
|
||||||
|
@ -1010,6 +1025,7 @@ export default {
|
||||||
$('.load-more-link').addClass('d-none');
|
$('.load-more-link').addClass('d-none');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
$('.load-more-link').addClass('d-none');
|
||||||
$('.postCommentsLoader').removeClass('d-none');
|
$('.postCommentsLoader').removeClass('d-none');
|
||||||
let next = this.pagination.links.next;
|
let next = this.pagination.links.next;
|
||||||
axios.get(next)
|
axios.get(next)
|
||||||
|
@ -1021,6 +1037,7 @@ export default {
|
||||||
this.results.unshift(res[i]);
|
this.results.unshift(res[i]);
|
||||||
}
|
}
|
||||||
this.pagination = response.data.meta.pagination;
|
this.pagination = response.data.meta.pagination;
|
||||||
|
$('.load-more-link').removeClass('d-none');
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue