UI enhancements for Catch-up

This commit is contained in:
Lim Chee Aun 2024-03-05 13:32:40 +08:00
parent 29e9e15d3f
commit bd46af6166
2 changed files with 101 additions and 8 deletions

View file

@ -668,6 +668,28 @@
animation: none; animation: none;
} }
&:is(.catchup-group-account, .catchup-selected-author):is(
.catchup-filter-original,
.catchup-filter-reply
)
> li {
margin-bottom: 0;
&:first-child ~ li {
.post-author:not(:has(.post-reblog-avatar)) {
opacity: 0.25;
@media (min-width: 40em) {
opacity: 0;
}
}
&.separator + li .post-author {
opacity: 1;
}
}
}
.post-peek { .post-peek {
grid-area: content; grid-area: content;
display: flex; display: flex;
@ -955,12 +977,18 @@
.post-stats { .post-stats {
display: inline-flex; display: inline-flex;
gap: 2px; gap: 4px;
align-items: center; align-items: center;
&:empty { &:empty {
display: none; display: none;
} }
> span {
display: inline-flex;
gap: 2px;
align-items: center;
}
} }
@media (hover: hover) { @media (hover: hover) {
.post-stats { .post-stats {
@ -972,6 +1000,63 @@
transform: translateX(0); transform: translateX(0);
} }
} }
&.catchup-sort-repliesCount {
.post-stats {
opacity: 1;
transform: translateX(0);
.post-stat-replies {
order: 2;
}
> *:not(.post-stat-replies) {
opacity: 0;
}
}
@media (hover: hover) {
.post-line:hover .post-stats > * {
opacity: 1;
}
}
}
&.catchup-sort-favouritesCount {
.post-stats {
opacity: 1;
transform: translateX(0);
.post-stat-likes {
order: 2;
}
> *:not(.post-stat-likes) {
opacity: 0;
}
}
@media (hover: hover) {
.post-line:hover .post-stats > * {
opacity: 1;
}
}
}
&.catchup-sort-reblogsCount {
.post-stats {
opacity: 1;
transform: translateX(0);
.post-stat-boosts {
order: 2;
}
> *:not(.post-stat-boosts) {
opacity: 0;
}
}
@media (hover: hover) {
.post-line:hover .post-stats > * {
opacity: 1;
}
}
}
+ footer { + footer {
min-height: 15vh; min-height: 15vh;

View file

@ -1176,7 +1176,15 @@ function Catchup() {
} }
</div> </div>
)} )}
<ul class="catchup-list"> <ul
class={`catchup-list catchup-filter-${
FILTER_VALUES[selectedFilterCategory] || ''
} ${sortBy ? `catchup-sort-${sortBy}` : ''} ${
selectedAuthor && authors[selectedAuthor]
? `catchup-selected-author`
: ''
} ${groupBy ? `catchup-group-${groupBy}` : ''}`}
>
{sortedFilteredPosts.map((post, i) => { {sortedFilteredPosts.map((post, i) => {
const id = post.reblog?.id || post.id; const id = post.reblog?.id || post.id;
let showSeparator = false; let showSeparator = false;
@ -1568,19 +1576,19 @@ function PostStats({ post }) {
return ( return (
<span class="post-stats"> <span class="post-stats">
{repliesCount > 0 && ( {repliesCount > 0 && (
<> <span class="post-stat-replies">
<Icon icon="comment2" size="s" /> {shortenNumber(repliesCount)} <Icon icon="comment2" size="s" /> {shortenNumber(repliesCount)}
</> </span>
)} )}
{favouritesCount > 0 && ( {favouritesCount > 0 && (
<> <span class="post-stat-likes">
<Icon icon="heart" size="s" /> {shortenNumber(favouritesCount)} <Icon icon="heart" size="s" /> {shortenNumber(favouritesCount)}
</> </span>
)} )}
{reblogsCount > 0 && ( {reblogsCount > 0 && (
<> <span class="post-stat-boosts">
<Icon icon="rocket" size="s" /> {shortenNumber(reblogsCount)} <Icon icon="rocket" size="s" /> {shortenNumber(reblogsCount)}
</> </span>
)} )}
</span> </span>
); );