Fix public favorites #390
4 changed files with 15 additions and 5 deletions
|
@ -97,6 +97,9 @@ const UserProfile = {
|
||||||
followersTabVisible () {
|
followersTabVisible () {
|
||||||
return this.isUs || !this.user.hide_followers
|
return this.isUs || !this.user.hide_followers
|
||||||
},
|
},
|
||||||
|
favoritesTabVisible () {
|
||||||
|
return this.isUs || !this.user.hide_favorites
|
||||||
|
},
|
||||||
currentUser () {
|
currentUser () {
|
||||||
return this.$store.state.users.currentUser
|
return this.$store.state.users.currentUser
|
||||||
},
|
},
|
||||||
|
@ -114,14 +117,14 @@ const UserProfile = {
|
||||||
replies: 'replies',
|
replies: 'replies',
|
||||||
media: 'media'
|
media: 'media'
|
||||||
}
|
}
|
||||||
// only we can see our own favourites
|
|
||||||
if (this.isUs) timelineTabMap['favorites'] = 'favorites'
|
if (this.favoritesTabVisible) timelineTabMap['favorites'] = 'favorites'
|
||||||
|
|||||||
|
|
||||||
const timeline = timelineTabMap[nextTab]
|
const timeline = timelineTabMap[nextTab]
|
||||||
|
|
||||||
if (timeline) {
|
if (timeline) {
|
||||||
this.stopFetching()
|
this.stopFetching()
|
||||||
this.$store.dispatch('startFetchingTimeline', { timeline: timeline, userId: this.userId })
|
this.$store.dispatch('startFetchingTimeline', { timeline: timeline, userId: nextTab == 'favorites' && this.isUs ? null : this.userId })
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
load (userNameOrId) {
|
load (userNameOrId) {
|
||||||
|
|
|
@ -165,14 +165,14 @@
|
||||||
:footer-slipgate="footerRef"
|
:footer-slipgate="footerRef"
|
||||||
/>
|
/>
|
||||||
<Timeline
|
<Timeline
|
||||||
v-if="isUs"
|
v-if="favoritesTabVisible"
|
||||||
key="favorites"
|
key="favorites"
|
||||||
:label="$t('user_card.favorites')"
|
:label="$t('user_card.favorites')"
|
||||||
:disabled="!isUs"
|
|
||||||
:embedded="true"
|
:embedded="true"
|
||||||
:title="$t('user_card.favorites')"
|
:title="$t('user_card.favorites')"
|
||||||
timeline-name="favorites"
|
timeline-name="favorites"
|
||||||
:timeline="favorites"
|
:timeline="favorites"
|
||||||
|
:user-id="isUs ? undefined : userId"
|
||||||
:in-profile="true"
|
:in-profile="true"
|
||||||
:footer-slipgate="footerRef"
|
:footer-slipgate="footerRef"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -107,6 +107,7 @@ const PLEROMA_ANNOUNCEMENTS_URL = '/api/v1/pleroma/admin/announcements'
|
||||||
const PLEROMA_POST_ANNOUNCEMENT_URL = '/api/v1/pleroma/admin/announcements'
|
const PLEROMA_POST_ANNOUNCEMENT_URL = '/api/v1/pleroma/admin/announcements'
|
||||||
const PLEROMA_EDIT_ANNOUNCEMENT_URL = id => `/api/v1/pleroma/admin/announcements/${id}`
|
const PLEROMA_EDIT_ANNOUNCEMENT_URL = id => `/api/v1/pleroma/admin/announcements/${id}`
|
||||||
const PLEROMA_DELETE_ANNOUNCEMENT_URL = id => `/api/v1/pleroma/admin/announcements/${id}`
|
const PLEROMA_DELETE_ANNOUNCEMENT_URL = id => `/api/v1/pleroma/admin/announcements/${id}`
|
||||||
|
const PLEROMA_USER_FAVORITES_TIMELINE_URL = id => `/api/v1/pleroma/accounts/${id}/favourites`
|
||||||
const AKKOMA_SETTING_PROFILE_URL = (name) => `/api/v1/akkoma/frontend_settings/pleroma-fe/${name}`
|
const AKKOMA_SETTING_PROFILE_URL = (name) => `/api/v1/akkoma/frontend_settings/pleroma-fe/${name}`
|
||||||
const AKKOMA_SETTING_PROFILE_LIST = `/api/v1/akkoma/frontend_settings/pleroma-fe`
|
const AKKOMA_SETTING_PROFILE_LIST = `/api/v1/akkoma/frontend_settings/pleroma-fe`
|
||||||
const MASTODON_TAG_URL = (name) => `/api/v1/tags/${name}`
|
const MASTODON_TAG_URL = (name) => `/api/v1/tags/${name}`
|
||||||
|
@ -709,6 +710,7 @@ const fetchTimeline = ({
|
||||||
media: MASTODON_USER_TIMELINE_URL,
|
media: MASTODON_USER_TIMELINE_URL,
|
||||||
list: MASTODON_LIST_TIMELINE_URL,
|
list: MASTODON_LIST_TIMELINE_URL,
|
||||||
favorites: MASTODON_USER_FAVORITES_TIMELINE_URL,
|
favorites: MASTODON_USER_FAVORITES_TIMELINE_URL,
|
||||||
|
publicFavorites: PLEROMA_USER_FAVORITES_TIMELINE_URL,
|
||||||
tag: MASTODON_TAG_TIMELINE_URL,
|
tag: MASTODON_TAG_TIMELINE_URL,
|
||||||
bookmarks: MASTODON_BOOKMARK_TIMELINE_URL
|
bookmarks: MASTODON_BOOKMARK_TIMELINE_URL
|
||||||
}
|
}
|
||||||
|
@ -717,6 +719,10 @@ const fetchTimeline = ({
|
||||||
|
|
||||||
let url = timelineUrls[timeline]
|
let url = timelineUrls[timeline]
|
||||||
|
|
||||||
|
if (timeline === 'favorites' && userId) {
|
||||||
|
url = timelineUrls.publicFavorites(userId)
|
||||||
|
}
|
||||||
|
|
||||||
if (timeline === 'user' || timeline === 'media' || timeline === 'replies') {
|
if (timeline === 'user' || timeline === 'media' || timeline === 'replies') {
|
||||||
url = url(userId)
|
url = url(userId)
|
||||||
}
|
}
|
||||||
|
|
|
@ -110,6 +110,7 @@ export const parseUser = (data) => {
|
||||||
|
|
||||||
output.allow_following_move = data.pleroma.allow_following_move
|
output.allow_following_move = data.pleroma.allow_following_move
|
||||||
|
|
||||||
|
output.hide_favorites = data.pleroma.hide_favorites
|
||||||
output.hide_follows = data.pleroma.hide_follows
|
output.hide_follows = data.pleroma.hide_follows
|
||||||
output.hide_followers = data.pleroma.hide_followers
|
output.hide_followers = data.pleroma.hide_followers
|
||||||
output.hide_follows_count = data.pleroma.hide_follows_count
|
output.hide_follows_count = data.pleroma.hide_follows_count
|
||||||
|
|
Loading…
Reference in a new issue
provided it works well with
user_profile.vue
(not sure tbh; frontend stuff isn’t my strong suit), it would imho be cleaner to properly distinguish one’s own favourites from publicly accessible favourites here and get rid off theuserId
checks and mangling in the other parts, i.e.: