bubble timeline
This commit is contained in:
parent
26b6f78f0b
commit
96c57a8ada
9 changed files with 30 additions and 9 deletions
|
|
@ -266,6 +266,7 @@ const getNodeInfo = async ({ store }) => {
|
||||||
store.dispatch('setInstanceOption', { name: 'mailerEnabled', value: metadata.mailerEnabled })
|
store.dispatch('setInstanceOption', { name: 'mailerEnabled', value: metadata.mailerEnabled })
|
||||||
store.dispatch('setInstanceOption', { name: 'quotingAvailable', value: features.includes('quote_posting') })
|
store.dispatch('setInstanceOption', { name: 'quotingAvailable', value: features.includes('quote_posting') })
|
||||||
store.dispatch('setInstanceOption', { name: 'groupActorAvailable', value: features.includes('pleroma:group_actors') })
|
store.dispatch('setInstanceOption', { name: 'groupActorAvailable', value: features.includes('pleroma:group_actors') })
|
||||||
|
store.dispatch('setInstanceOption', { name: 'localBubbleInstances', value: metadata.localBubbleInstances ?? [] })
|
||||||
|
|
||||||
const uploadLimits = metadata.uploadLimits
|
const uploadLimits = metadata.uploadLimits
|
||||||
store.dispatch('setInstanceOption', { name: 'uploadlimit', value: parseInt(uploadLimits.general) })
|
store.dispatch('setInstanceOption', { name: 'uploadlimit', value: parseInt(uploadLimits.general) })
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
import PublicTimeline from 'components/public_timeline/public_timeline.vue'
|
import PublicTimeline from 'components/public_timeline/public_timeline.vue'
|
||||||
|
import BubbleTimeline from 'components/bubble_timeline/bubble_timeline.vue'
|
||||||
import PublicAndExternalTimeline from 'components/public_and_external_timeline/public_and_external_timeline.vue'
|
import PublicAndExternalTimeline from 'components/public_and_external_timeline/public_and_external_timeline.vue'
|
||||||
import FriendsTimeline from 'components/friends_timeline/friends_timeline.vue'
|
import FriendsTimeline from 'components/friends_timeline/friends_timeline.vue'
|
||||||
import TagTimeline from 'components/tag_timeline/tag_timeline.vue'
|
import TagTimeline from 'components/tag_timeline/tag_timeline.vue'
|
||||||
|
|
@ -54,6 +55,7 @@ export default (store) => {
|
||||||
{ name: 'friends', path: '/main/friends', component: FriendsTimeline, beforeEnter: validateAuthenticatedRoute },
|
{ name: 'friends', path: '/main/friends', component: FriendsTimeline, beforeEnter: validateAuthenticatedRoute },
|
||||||
{ name: 'tag-timeline', path: '/tag/:tag', component: TagTimeline },
|
{ name: 'tag-timeline', path: '/tag/:tag', component: TagTimeline },
|
||||||
{ name: 'bookmarks', path: '/bookmarks', component: BookmarkTimeline },
|
{ name: 'bookmarks', path: '/bookmarks', component: BookmarkTimeline },
|
||||||
|
{ name: 'bubble', path: '/bubble', component: BubbleTimeline },
|
||||||
{ name: 'conversation', path: '/notice/:id', component: ConversationPage, meta: { dontScroll: true } },
|
{ name: 'conversation', path: '/notice/:id', component: ConversationPage, meta: { dontScroll: true } },
|
||||||
{ name: 'quotes', path: '/notice/:id/quotes', component: QuotesTimeline },
|
{ name: 'quotes', path: '/notice/:id/quotes', component: QuotesTimeline },
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import {
|
import {
|
||||||
faUsers,
|
faUsers,
|
||||||
faGlobe,
|
faGlobe,
|
||||||
|
faCity,
|
||||||
faBookmark,
|
faBookmark,
|
||||||
faEnvelope,
|
faEnvelope,
|
||||||
faChevronDown,
|
faChevronDown,
|
||||||
|
|
@ -31,6 +32,7 @@ import {
|
||||||
library.add(
|
library.add(
|
||||||
faUsers,
|
faUsers,
|
||||||
faGlobe,
|
faGlobe,
|
||||||
|
faCity,
|
||||||
faBookmark,
|
faBookmark,
|
||||||
faEnvelope,
|
faEnvelope,
|
||||||
faChevronDown,
|
faChevronDown,
|
||||||
|
|
@ -108,7 +110,8 @@ const NavPanel = {
|
||||||
privateMode: state => state.instance.private,
|
privateMode: state => state.instance.private,
|
||||||
federating: state => state.instance.federating,
|
federating: state => state.instance.federating,
|
||||||
pleromaChatMessagesAvailable: state => state.instance.pleromaChatMessagesAvailable,
|
pleromaChatMessagesAvailable: state => state.instance.pleromaChatMessagesAvailable,
|
||||||
bookmarkFolders: state => state.instance.pleromaBookmarkFoldersAvailable
|
bookmarkFolders: state => state.instance.pleromaBookmarkFoldersAvailable,
|
||||||
|
bubbleTimeline: state => state.instance.localBubbleInstances.length > 0
|
||||||
}),
|
}),
|
||||||
timelinesItems () {
|
timelinesItems () {
|
||||||
return filterNavigation(
|
return filterNavigation(
|
||||||
|
|
@ -121,7 +124,8 @@ const NavPanel = {
|
||||||
isFederating: this.federating,
|
isFederating: this.federating,
|
||||||
isPrivate: this.privateMode,
|
isPrivate: this.privateMode,
|
||||||
currentUser: this.currentUser,
|
currentUser: this.currentUser,
|
||||||
supportsBookmarkFolders: this.bookmarkFolders
|
supportsBookmarkFolders: this.bookmarkFolders,
|
||||||
|
supportsBubbleTimeline: this.bubbleTimeline
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
|
|
@ -136,7 +140,8 @@ const NavPanel = {
|
||||||
isFederating: this.federating,
|
isFederating: this.federating,
|
||||||
isPrivate: this.privateMode,
|
isPrivate: this.privateMode,
|
||||||
currentUser: this.currentUser,
|
currentUser: this.currentUser,
|
||||||
supportsBookmarkFolders: this.bookmarkFolders
|
supportsBookmarkFolders: this.bookmarkFolders,
|
||||||
|
supportsBubbleTimeline: this.bubbleTimeline
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,12 @@ export const TIMELINES = {
|
||||||
label: 'nav.public_tl',
|
label: 'nav.public_tl',
|
||||||
criteria: ['!private']
|
criteria: ['!private']
|
||||||
},
|
},
|
||||||
|
bubble: {
|
||||||
|
route: 'bubble',
|
||||||
|
icon: 'city',
|
||||||
|
label: 'nav.bubble',
|
||||||
|
criteria: ['supportsBubbleTimeline']
|
||||||
|
},
|
||||||
twkn: {
|
twkn: {
|
||||||
route: 'public-external-timeline',
|
route: 'public-external-timeline',
|
||||||
anon: true,
|
anon: true,
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,8 @@ export const timelineNames = (supportsBookmarkFolders) => {
|
||||||
dms: 'nav.dms',
|
dms: 'nav.dms',
|
||||||
'public-timeline': 'nav.public_tl',
|
'public-timeline': 'nav.public_tl',
|
||||||
'public-external-timeline': 'nav.twkn',
|
'public-external-timeline': 'nav.twkn',
|
||||||
quotes: 'nav.quotes'
|
quotes: 'nav.quotes',
|
||||||
|
bubble: 'nav.bubble'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -58,7 +59,8 @@ const TimelineMenu = {
|
||||||
currentUser: state => state.users.currentUser,
|
currentUser: state => state.users.currentUser,
|
||||||
privateMode: state => state.instance.private,
|
privateMode: state => state.instance.private,
|
||||||
federating: state => state.instance.federating,
|
federating: state => state.instance.federating,
|
||||||
bookmarkFolders: state => state.instance.pleromaBookmarkFoldersAvailable
|
bookmarkFolders: state => state.instance.pleromaBookmarkFoldersAvailable,
|
||||||
|
bubbleTimeline: state => state.instance.localBubbleInstances.length > 0
|
||||||
}),
|
}),
|
||||||
timelinesList () {
|
timelinesList () {
|
||||||
return filterNavigation(
|
return filterNavigation(
|
||||||
|
|
@ -68,7 +70,8 @@ const TimelineMenu = {
|
||||||
isFederating: this.federating,
|
isFederating: this.federating,
|
||||||
isPrivate: this.privateMode,
|
isPrivate: this.privateMode,
|
||||||
currentUser: this.currentUser,
|
currentUser: this.currentUser,
|
||||||
supportsBookmarkFolders: this.bookmarkFolders
|
supportsBookmarkFolders: this.bookmarkFolders,
|
||||||
|
supportsBubbleTimeline: this.bubbleTimeline
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -171,6 +171,7 @@
|
||||||
"interactions": "Interactions",
|
"interactions": "Interactions",
|
||||||
"dms": "Direct messages",
|
"dms": "Direct messages",
|
||||||
"public_tl": "Public timeline",
|
"public_tl": "Public timeline",
|
||||||
|
"bubble": "Bubble timeline",
|
||||||
"timeline": "Timeline",
|
"timeline": "Timeline",
|
||||||
"home_timeline": "Home timeline",
|
"home_timeline": "Home timeline",
|
||||||
"twkn": "Known Network",
|
"twkn": "Known Network",
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,8 @@ export const defaultState = () => ({
|
||||||
tag: emptyTl(),
|
tag: emptyTl(),
|
||||||
dms: emptyTl(),
|
dms: emptyTl(),
|
||||||
bookmarks: emptyTl(),
|
bookmarks: emptyTl(),
|
||||||
list: emptyTl()
|
list: emptyTl(),
|
||||||
|
bubble: emptyTl()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -61,6 +61,7 @@ const MASTODON_LIST_TIMELINE_URL = id => `/api/v1/timelines/list/${id}`
|
||||||
const MASTODON_LIST_ACCOUNTS_URL = id => `/api/v1/lists/${id}/accounts`
|
const MASTODON_LIST_ACCOUNTS_URL = id => `/api/v1/lists/${id}/accounts`
|
||||||
const MASTODON_TAG_TIMELINE_URL = tag => `/api/v1/timelines/tag/${tag}`
|
const MASTODON_TAG_TIMELINE_URL = tag => `/api/v1/timelines/tag/${tag}`
|
||||||
const MASTODON_BOOKMARK_TIMELINE_URL = '/api/v1/bookmarks'
|
const MASTODON_BOOKMARK_TIMELINE_URL = '/api/v1/bookmarks'
|
||||||
|
const AKKOMA_BUBBLE_TIMELINE_URL = '/api/v1/timelines/bubble'
|
||||||
const MASTODON_USER_BLOCKS_URL = '/api/v1/blocks/'
|
const MASTODON_USER_BLOCKS_URL = '/api/v1/blocks/'
|
||||||
const MASTODON_USER_MUTES_URL = '/api/v1/mutes/'
|
const MASTODON_USER_MUTES_URL = '/api/v1/mutes/'
|
||||||
const MASTODON_BLOCK_USER_URL = id => `/api/v1/accounts/${id}/block`
|
const MASTODON_BLOCK_USER_URL = id => `/api/v1/accounts/${id}/block`
|
||||||
|
|
@ -707,7 +708,8 @@ const fetchTimeline = ({
|
||||||
publicFavorites: PLEROMA_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,
|
||||||
quotes: PLEROMA_STATUS_QUOTES_URL
|
quotes: PLEROMA_STATUS_QUOTES_URL,
|
||||||
|
bubble: AKKOMA_BUBBLE_TIMELINE_URL
|
||||||
}
|
}
|
||||||
const isNotifications = timeline === 'notifications'
|
const isNotifications = timeline === 'notifications'
|
||||||
const params = []
|
const params = []
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ const fetchAndUpdate = ({
|
||||||
args.bookmarkFolderId = bookmarkFolderId
|
args.bookmarkFolderId = bookmarkFolderId
|
||||||
args.tag = tag
|
args.tag = tag
|
||||||
args.withMuted = !hideMutedPosts
|
args.withMuted = !hideMutedPosts
|
||||||
if (loggedIn && ['friends', 'public', 'publicAndExternal'].includes(timeline)) {
|
if (loggedIn && ['friends', 'public', 'publicAndExternal', 'bubble'].includes(timeline)) {
|
||||||
args.replyVisibility = replyVisibility
|
args.replyVisibility = replyVisibility
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue