diff --git a/src/components/user_profile/user_profile.js b/src/components/user_profile/user_profile.js
index 12b656d9..28959e57 100644
--- a/src/components/user_profile/user_profile.js
+++ b/src/components/user_profile/user_profile.js
@@ -58,6 +58,9 @@ const UserProfile = {
timeline () {
return this.$store.state.statuses.timelines.user
},
+ replies () {
+ return this.$store.state.statuses.timelines.replies
+ },
favorites () {
return this.$store.state.statuses.timelines.favorites
},
@@ -101,6 +104,7 @@ const UserProfile = {
const loadById = (userId) => {
this.userId = userId
startFetchingTimeline('user', userId)
+ startFetchingTimeline('replies', userId)
startFetchingTimeline('media', userId)
if (this.isUs) {
startFetchingTimeline('favorites', userId)
diff --git a/src/components/user_profile/user_profile.vue b/src/components/user_profile/user_profile.vue
index 8b63953e..69d0ace4 100644
--- a/src/components/user_profile/user_profile.vue
+++ b/src/components/user_profile/user_profile.vue
@@ -79,6 +79,18 @@
:in-profile="true"
:footer-slipgate="footerRef"
/>
+
({
dms: emptyTl(),
bookmarks: emptyTl(),
list: emptyTl(),
- bubble: emptyTl()
+ bubble: emptyTl(),
+ replies: emptyTl()
}
})
@@ -183,7 +184,7 @@ const addNewStatuses = (state, { statuses, showImmediately = false, timeline, us
// This makes sure that user timeline won't get data meant for other
// user. I.e. opening different user profiles makes request which could
// return data late after user already viewing different user profile
- if ((timeline === 'user' || timeline === 'media') && timelineObject.userId !== userId) {
+ if ((timeline === 'user' || timeline === 'media' || timeline === 'replies') && timelineObject.userId !== userId) {
return
}
diff --git a/src/services/api/api.service.js b/src/services/api/api.service.js
index cc2da9c5..980af8e5 100644
--- a/src/services/api/api.service.js
+++ b/src/services/api/api.service.js
@@ -616,6 +616,7 @@ const fetchTimeline = ({
notifications: MASTODON_USER_NOTIFICATIONS_URL,
'publicAndExternal': MASTODON_PUBLIC_TIMELINE,
user: MASTODON_USER_TIMELINE_URL,
+ replies: MASTODON_USER_TIMELINE_URL,
media: MASTODON_USER_TIMELINE_URL,
list: MASTODON_LIST_TIMELINE_URL,
favorites: MASTODON_USER_FAVORITES_TIMELINE_URL,
@@ -627,7 +628,7 @@ const fetchTimeline = ({
let url = timelineUrls[timeline]
- if (timeline === 'user' || timeline === 'media') {
+ if (timeline === 'user' || timeline === 'media' || timeline === 'replies') {
url = url(userId)
}
@@ -659,6 +660,9 @@ const fetchTimeline = ({
if (replyVisibility !== 'all') {
params.push(['reply_visibility', replyVisibility])
}
+ if (timeline === 'user') {
+ params.push(['exclude_replies', 1])
+ }
params.push(['limit', 20])