add: expand infinite scrolling to stacks and profiles

This commit is contained in:
trisua 2025-06-17 14:28:18 -04:00
parent 2b253c811c
commit 3027b679db
16 changed files with 226 additions and 288 deletions

View file

@ -1,6 +1,7 @@
use super::{render_error, PaginatedQuery, ProfileQuery};
use crate::{
assets::initial_context, check_user_blocked_or_private, get_lang, get_user_from_token, State,
assets::initial_context, check_user_blocked_or_private, get_lang, get_user_from_token,
ignore_users_gen, State,
};
use axum::{
Extension,
@ -241,67 +242,8 @@ pub async fn posts_request(
));
}
// fetch data
let ignore_users = crate::ignore_users_gen!(user, data);
let posts = if props.tag.is_empty() {
match data
.0
.get_posts_by_user(other_user.id, 12, props.page, &user)
.await
{
Ok(p) => match data
.0
.fill_posts_with_community(
p,
if let Some(ref ua) = user { ua.id } else { 0 },
&ignore_users,
&user,
)
.await
{
Ok(p) => data.0.posts_muted_phrase_filter(
&p,
if let Some(ref ua) = user {
Some(&ua.settings.muted)
} else {
None
},
),
Err(e) => return Err(Html(render_error(e, &jar, &data, &user).await)),
},
Err(e) => return Err(Html(render_error(e, &jar, &data, &user).await)),
}
} else {
match data
.0
.get_posts_by_user_tag(other_user.id, &props.tag, 12, props.page, &user)
.await
{
Ok(p) => match data
.0
.fill_posts_with_community(
p,
if let Some(ref ua) = user { ua.id } else { 0 },
&ignore_users,
&user,
)
.await
{
Ok(p) => data.0.posts_muted_phrase_filter(
&p,
if let Some(ref ua) = user {
Some(&ua.settings.muted)
} else {
None
},
),
Err(e) => return Err(Html(render_error(e, &jar, &data, &user).await)),
},
Err(e) => return Err(Html(render_error(e, &jar, &data, &user).await)),
}
};
// fetch pinned
let ignore_users = ignore_users_gen!(user, data);
let pinned = if props.tag.is_empty() {
match data.0.get_pinned_posts_by_user(other_user.id).await {
Ok(p) => match data
@ -375,7 +317,6 @@ pub async fn posts_request(
false
};
context.insert("posts", &posts);
context.insert("pinned", &pinned);
context.insert("page", &props.page);
context.insert("tag", &props.tag);