diff options
Diffstat (limited to 'src/services')
5 files changed, 28 insertions, 18 deletions
diff --git a/src/services/entity_normalizer/entity_normalizer.service.js b/src/services/entity_normalizer/entity_normalizer.service.js index 7ea8a16c..c1bf8535 100644 --- a/src/services/entity_normalizer/entity_normalizer.service.js +++ b/src/services/entity_normalizer/entity_normalizer.service.js @@ -79,6 +79,7 @@ export const parseUser = (data) => { const relationship = data.pleroma.relationship output.background_image = data.pleroma.background_image + output.favicon = data.pleroma.favicon output.token = data.pleroma.chat_token if (relationship) { diff --git a/src/services/notifications_fetcher/notifications_fetcher.service.js b/src/services/notifications_fetcher/notifications_fetcher.service.js index d282074a..80be02ca 100644 --- a/src/services/notifications_fetcher/notifications_fetcher.service.js +++ b/src/services/notifications_fetcher/notifications_fetcher.service.js @@ -35,7 +35,7 @@ const fetchAndUpdate = ({ store, credentials, older = false }) => { const notifications = timelineData.data const readNotifsIds = notifications.filter(n => n.seen).map(n => n.id) const numUnseenNotifs = notifications.length - readNotifsIds.length - if (numUnseenNotifs > 0) { + if (numUnseenNotifs > 0 && readNotifsIds.length > 0) { args['since'] = Math.max(...readNotifsIds) fetchNotifications({ store, args, older }) } diff --git a/src/services/theme_data/pleromafe.js b/src/services/theme_data/pleromafe.js index b58ca9be..7ed85797 100644 --- a/src/services/theme_data/pleromafe.js +++ b/src/services/theme_data/pleromafe.js @@ -675,23 +675,22 @@ export const SLOT_INHERITANCE = { depends: ['bg'] }, - chatMessage: { - depends: ['chatBg'] - }, - chatMessageIncomingBg: { - depends: ['chatMessage'], - layer: 'chatMessage' + depends: ['chatBg'] }, chatMessageIncomingText: { depends: ['text'], - layer: 'text' + layer: 'chatMessage', + variant: 'chatMessageIncomingBg', + textColor: true }, chatMessageIncomingLink: { depends: ['link'], - layer: 'link' + layer: 'chatMessage', + variant: 'chatMessageIncomingBg', + textColor: 'preserve' }, chatMessageIncomingBorder: { @@ -701,22 +700,27 @@ export const SLOT_INHERITANCE = { }, chatMessageOutgoingBg: { - depends: ['chatMessage'], + depends: ['chatMessageIncomingBg'], color: (mod, chatMessage) => brightness(5 * mod, chatMessage).rgb }, chatMessageOutgoingText: { depends: ['text'], - layer: 'text' + layer: 'chatMessage', + variant: 'chatMessageOutgoingBg', + textColor: true }, chatMessageOutgoingLink: { depends: ['link'], - layer: 'link' + layer: 'chatMessage', + variant: 'chatMessageOutgoingBg', + textColor: 'preserve' }, chatMessageOutgoingBorder: { - depends: ['chatMessage'], - opacity: 'chatMessage' + depends: ['chatMessageOutgoingBg'], + opacity: 'border', + color: (mod, border) => brightness(2 * mod, border).rgb } } diff --git a/src/services/theme_data/theme_data.service.js b/src/services/theme_data/theme_data.service.js index dd87e3cf..b619f810 100644 --- a/src/services/theme_data/theme_data.service.js +++ b/src/services/theme_data/theme_data.service.js @@ -128,14 +128,17 @@ export const topoSort = ( while (unprocessed.length > 0) { step(unprocessed.pop()) } - return output.sort((a, b) => { + + // The index thing is to make sorting stable on browsers + // where Array.sort() isn't stable + return output.map((data, index) => ({ data, index })).sort(({ data: a, index: ai }, { data: b, index: bi }) => { const depsA = getDeps(a, inheritance).length const depsB = getDeps(b, inheritance).length - if (depsA === depsB || (depsB !== 0 && depsA !== 0)) return 0 + if (depsA === depsB || (depsB !== 0 && depsA !== 0)) return ai - bi if (depsA === 0 && depsB !== 0) return -1 if (depsB === 0 && depsA !== 0) return 1 - }) + }).map(({ data }) => data) } const expandSlotValue = (value) => { diff --git a/src/services/timeline_fetcher/timeline_fetcher.service.js b/src/services/timeline_fetcher/timeline_fetcher.service.js index 214294eb..d0cddf84 100644 --- a/src/services/timeline_fetcher/timeline_fetcher.service.js +++ b/src/services/timeline_fetcher/timeline_fetcher.service.js @@ -43,7 +43,9 @@ const fetchAndUpdate = ({ args['userId'] = userId args['tag'] = tag args['withMuted'] = !hideMutedPosts - if (loggedIn) args['replyVisibility'] = replyVisibility + if (loggedIn && ['friends', 'public', 'publicAndExternal'].includes(timeline)) { + args['replyVisibility'] = replyVisibility + } const numStatusesBeforeFetch = timelineData.statuses.length |
