add: expand infinite scrolling to stacks and profiles
This commit is contained in:
parent
2b253c811c
commit
3027b679db
16 changed files with 226 additions and 288 deletions
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue