Display public favorites on user profiles
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
This commit is contained in:
parent
6391a6a4ea
commit
6f452d672f
1
changelog.d/public-favorites.add
Normal file
1
changelog.d/public-favorites.add
Normal file
@ -0,0 +1 @@
|
|||||||
|
Display public favorites on user profiles
|
@ -80,6 +80,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
|
||||||
|
},
|
||||||
formattedBirthday () {
|
formattedBirthday () {
|
||||||
const browserLocale = localeService.internalToBrowserLocale(this.$i18n.locale)
|
const browserLocale = localeService.internalToBrowserLocale(this.$i18n.locale)
|
||||||
return this.user.birthday && new Date(Date.parse(this.user.birthday)).toLocaleDateString(browserLocale, { timeZone: 'UTC', day: 'numeric', month: 'long', year: 'numeric' })
|
return this.user.birthday && new Date(Date.parse(this.user.birthday)).toLocaleDateString(browserLocale, { timeZone: 'UTC', day: 'numeric', month: 'long', year: 'numeric' })
|
||||||
@ -103,6 +106,8 @@ const UserProfile = {
|
|||||||
startFetchingTimeline('user', userId)
|
startFetchingTimeline('user', userId)
|
||||||
startFetchingTimeline('media', userId)
|
startFetchingTimeline('media', userId)
|
||||||
if (this.isUs) {
|
if (this.isUs) {
|
||||||
|
startFetchingTimeline('favorites')
|
||||||
|
} else if (!this.user.hide_favorites) {
|
||||||
startFetchingTimeline('favorites', userId)
|
startFetchingTimeline('favorites', userId)
|
||||||
}
|
}
|
||||||
// Fetch all pinned statuses immediately
|
// Fetch all pinned statuses immediately
|
||||||
|
@ -109,7 +109,7 @@
|
|||||||
: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="!favorites.visibleStatuses.length"
|
:disabled="!favorites.visibleStatuses.length"
|
||||||
@ -117,6 +117,7 @@
|
|||||||
:title="$t('user_card.favorites')"
|
:title="$t('user_card.favorites')"
|
||||||
timeline-name="favorites"
|
timeline-name="favorites"
|
||||||
:timeline="favorites"
|
:timeline="favorites"
|
||||||
|
:user-id="userId"
|
||||||
:in-profile="true"
|
:in-profile="true"
|
||||||
:footer-slipgate="footerRef"
|
:footer-slipgate="footerRef"
|
||||||
/>
|
/>
|
||||||
|
@ -108,6 +108,7 @@ 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_SCROBBLES_URL = id => `/api/v1/pleroma/accounts/${id}/scrobbles`
|
const PLEROMA_SCROBBLES_URL = id => `/api/v1/pleroma/accounts/${id}/scrobbles`
|
||||||
|
const PLEROMA_USER_FAVORITES_TIMELINE_URL = id => `/api/v1/pleroma/accounts/${id}/favourites`
|
||||||
|
|
||||||
const PLEROMA_ADMIN_CONFIG_URL = '/api/pleroma/admin/config'
|
const PLEROMA_ADMIN_CONFIG_URL = '/api/pleroma/admin/config'
|
||||||
const PLEROMA_ADMIN_DESCRIPTIONS_URL = '/api/pleroma/admin/config/descriptions'
|
const PLEROMA_ADMIN_DESCRIPTIONS_URL = '/api/pleroma/admin/config/descriptions'
|
||||||
@ -690,6 +691,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
|
||||||
}
|
}
|
||||||
@ -698,6 +700,10 @@ const fetchTimeline = ({
|
|||||||
|
|
||||||
let url = timelineUrls[timeline]
|
let url = timelineUrls[timeline]
|
||||||
|
|
||||||
|
if (timeline === 'favorites' && userId) {
|
||||||
|
url = timelineUrls.publicFavorites(userId)
|
||||||
|
}
|
||||||
|
|
||||||
if (timeline === 'user' || timeline === 'media') {
|
if (timeline === 'user' || timeline === 'media') {
|
||||||
url = url(userId)
|
url = url(userId)
|
||||||
}
|
}
|
||||||
|
@ -107,6 +107,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 New Issue
Block a user