Compare commits

..

No commits in common. "c679df05d061709bb7f28b50e3ceab51bd1dbfe1" and "3b2bc69341ed95d2eb72e1dca66832afc0af5d97" have entirely different histories.

32 changed files with 39 additions and 325 deletions

View file

@ -1 +0,0 @@
Display quotes count on posts and add quotes list page

View file

@ -1 +0,0 @@
Option to only show scrobbles that are recent enough

View file

@ -3,7 +3,7 @@
@import "./panel"; @import "./panel";
:root { :root {
--fontSize: 14px; --font-size: 14px;
--status-margin: 0.75em; --status-margin: 0.75em;
--navbar-height: 3.5rem; --navbar-height: 3.5rem;
--post-line-height: 1.4; --post-line-height: 1.4;
@ -20,7 +20,7 @@
} }
html { html {
font-size: var(--textSize); font-size: var(--font-size);
// overflow-x: clip causes my browser's tab to crash with SIGILL lul // overflow-x: clip causes my browser's tab to crash with SIGILL lul
} }

View file

@ -25,7 +25,6 @@ import ListsTimeline from 'components/lists_timeline/lists_timeline.vue'
import ListsEdit from 'components/lists_edit/lists_edit.vue' import ListsEdit from 'components/lists_edit/lists_edit.vue'
import NavPanel from 'src/components/nav_panel/nav_panel.vue' import NavPanel from 'src/components/nav_panel/nav_panel.vue'
import AnnouncementsPage from 'components/announcements_page/announcements_page.vue' import AnnouncementsPage from 'components/announcements_page/announcements_page.vue'
import QuotesTimeline from '../components/quotes_timeline/quotes_timeline.vue'
export default (store) => { export default (store) => {
const validateAuthenticatedRoute = (to, from, next) => { const validateAuthenticatedRoute = (to, from, next) => {
@ -52,7 +51,6 @@ export default (store) => {
{ 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: '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: 'remote-user-profile-acct', name: 'remote-user-profile-acct',
path: '/remote-users/:_(@)?:username([^/@]+)@:hostname([^/@]+)', path: '/remote-users/:_(@)?:username([^/@]+)@:hostname([^/@]+)',

View file

@ -1,26 +0,0 @@
import Timeline from '../timeline/timeline.vue'
const QuotesTimeline = {
created () {
this.$store.commit('clearTimeline', { timeline: 'quotes' })
this.$store.dispatch('startFetchingTimeline', { timeline: 'quotes', statusId: this.statusId })
},
components: {
Timeline
},
computed: {
statusId () { return this.$route.params.id },
timeline () { return this.$store.state.statuses.timelines.quotes }
},
watch: {
statusId () {
this.$store.commit('clearTimeline', { timeline: 'quotes' })
this.$store.dispatch('startFetchingTimeline', { timeline: 'quotes', statusId: this.statusId })
}
},
unmounted () {
this.$store.dispatch('stopFetchingTimeline', 'quotes')
}
}
export default QuotesTimeline

View file

@ -1,10 +0,0 @@
<template>
<Timeline
:title="$t('nav.quotes')"
:timeline="timeline"
:timeline-name="'quotes'"
:status-id="statusId"
/>
</template>
<script src='./quotes_timeline.js'></script>

View file

@ -48,10 +48,6 @@ export default {
draftMode: { draftMode: {
type: Boolean, type: Boolean,
default: undefined default: undefined
},
timedApplyMode: {
type: Boolean,
default: false
} }
}, },
inject: { inject: {
@ -165,11 +161,7 @@ export default {
case 'admin': case 'admin':
return (k, v) => this.$store.dispatch('pushAdminSetting', { path: k, value: v }) return (k, v) => this.$store.dispatch('pushAdminSetting', { path: k, value: v })
default: default:
if (this.timedApplyMode) { return (k, v) => this.$store.dispatch('setOption', { name: k, value: v })
return (k, v) => this.$store.dispatch('setOptionTemporarily', { name: k, value: v })
} else {
return (k, v) => this.$store.dispatch('setOption', { name: k, value: v })
}
} }
}, },
defaultState () { defaultState () {

View file

@ -21,23 +21,15 @@ export default {
unitSet: { unitSet: {
type: String, type: String,
default: 'none' default: 'none'
},
step: {
type: Number,
default: 1
},
resetDefault: {
type: Object,
default: null
} }
}, },
computed: { computed: {
...Setting.computed, ...Setting.computed,
stateUnit () { stateUnit () {
return typeof this.state === 'string' ? this.state.replace(/[0-9,.]+/, '') : '' return this.state.replace(/\d+/, '')
}, },
stateValue () { stateValue () {
return typeof this.state === 'string' ? this.state.replace(/[^0-9,.]+/, '') : '' return this.state.replace(/\D+/, '')
} }
}, },
methods: { methods: {
@ -47,18 +39,10 @@ export default {
return this.$t(['settings', 'units', this.unitSet, value].join('.')) return this.$t(['settings', 'units', this.unitSet, value].join('.'))
}, },
updateValue (e) { updateValue (e) {
this.configSink(this.path, parseFloat(e.target.value) + this.stateUnit) this.configSink(this.path, parseInt(e.target.value) + this.stateUnit)
}, },
updateUnit (e) { updateUnit (e) {
let value = this.stateValue this.configSink(this.path, this.stateValue + e.target.value)
const newUnit = e.target.value
if (this.resetDefault) {
const replaceValue = this.resetDefault[newUnit]
if (replaceValue != null) {
value = replaceValue
}
}
this.configSink(this.path, value + newUnit)
} }
} }
} }

View file

@ -13,7 +13,7 @@
:id="path" :id="path"
class="input number-input" class="input number-input"
type="number" type="number"
step="step" step="1"
:disabled="disabled" :disabled="disabled"
:min="min || 0" :min="min || 0"
:value="stateValue" :value="stateValue"

View file

@ -4,7 +4,6 @@ import AsyncComponentError from 'src/components/async_component_error/async_comp
import getResettableAsyncComponent from 'src/services/resettable_async_component.js' import getResettableAsyncComponent from 'src/services/resettable_async_component.js'
import Popover from '../popover/popover.vue' import Popover from '../popover/popover.vue'
import Checkbox from 'src/components/checkbox/checkbox.vue' import Checkbox from 'src/components/checkbox/checkbox.vue'
import ConfirmModal from 'src/components/confirm_modal/confirm_modal.vue'
import { library } from '@fortawesome/fontawesome-svg-core' import { library } from '@fortawesome/fontawesome-svg-core'
import { cloneDeep, isEqual } from 'lodash' import { cloneDeep, isEqual } from 'lodash'
import { import {
@ -54,7 +53,6 @@ const SettingsModal = {
Modal, Modal,
Popover, Popover,
Checkbox, Checkbox,
ConfirmModal,
SettingsModalUserContent: getResettableAsyncComponent( SettingsModalUserContent: getResettableAsyncComponent(
() => import('./settings_modal_user_content.vue'), () => import('./settings_modal_user_content.vue'),
{ {
@ -167,7 +165,6 @@ const SettingsModal = {
}, },
computed: { computed: {
currentSaveStateNotice () { currentSaveStateNotice () {
console.log(this.$store.state.interface.settings.currentSaveStateNotice)
return this.$store.state.interface.settings.currentSaveStateNotice return this.$store.state.interface.settings.currentSaveStateNotice
}, },
modalActivated () { modalActivated () {

View file

@ -147,18 +147,6 @@
</span> </span>
</div> </div>
</div> </div>
<teleport to="#modal">
<ConfirmModal
v-if="$store.state.interface.temporaryChangesTimeoutId"
:title="$t('settings.confirm_new_setting')"
:cancel-text="$t('settings.revert')"
:confirm-text="$t('settings.confirm')"
@cancelled="$store.state.interface.temporaryChangesRevert"
@accepted="$store.state.interface.temporaryChangesConfirm"
>
{{ $t('settings.confirm_new_question') }}
</ConfirmModal>
</teleport>
</Modal> </Modal>
</template> </template>

View file

@ -7,7 +7,6 @@ import FilteringTab from './tabs/filtering_tab.vue'
import SecurityTab from './tabs/security_tab/security_tab.vue' import SecurityTab from './tabs/security_tab/security_tab.vue'
import ProfileTab from './tabs/profile_tab.vue' import ProfileTab from './tabs/profile_tab.vue'
import GeneralTab from './tabs/general_tab.vue' import GeneralTab from './tabs/general_tab.vue'
import AppearanceTab from './tabs/appearance_tab.vue'
import VersionTab from './tabs/version_tab.vue' import VersionTab from './tabs/version_tab.vue'
import ThemeTab from './tabs/theme_tab/theme_tab.vue' import ThemeTab from './tabs/theme_tab/theme_tab.vue'
@ -45,7 +44,6 @@ const SettingsModalContent = {
SecurityTab, SecurityTab,
ProfileTab, ProfileTab,
GeneralTab, GeneralTab,
AppearanceTab,
VersionTab, VersionTab,
ThemeTab ThemeTab
}, },

View file

@ -21,13 +21,6 @@
> >
<ProfileTab /> <ProfileTab />
</div> </div>
<div
:label="$t('settings.appearance')"
icon="paint-brush"
data-tab-name="appearance"
>
<AppearanceTab />
</div>
<div <div
v-if="isLoggedIn" v-if="isLoggedIn"
:label="$t('settings.security_tab')" :label="$t('settings.security_tab')"

View file

@ -1,39 +0,0 @@
import BooleanSetting from '../helpers/boolean_setting.vue'
import ChoiceSetting from '../helpers/choice_setting.vue'
import IntegerSetting from '../helpers/integer_setting.vue'
import FloatSetting from '../helpers/float_setting.vue'
import UnitSetting from '../helpers/unit_setting.vue'
import SharedComputedObject from '../helpers/shared_computed_object.js'
import ProfileSettingIndicator from '../helpers/profile_setting_indicator.vue'
import { library } from '@fortawesome/fontawesome-svg-core'
import {
faGlobe
} from '@fortawesome/free-solid-svg-icons'
library.add(
faGlobe
)
const AppearanceTab = {
data () {
return {}
},
components: {
BooleanSetting,
ChoiceSetting,
IntegerSetting,
FloatSetting,
UnitSetting,
ProfileSettingIndicator
},
computed: {
instanceWallpaperUsed () {
return this.$store.state.instance.background &&
!this.$store.state.users.currentUser.background_image
},
...SharedComputedObject()
}
}
export default AppearanceTab

View file

@ -1,71 +0,0 @@
<template>
<div :label="$t('settings.general')">
<div class="setting-item">
<h2>{{ $t('settings.interface') }}</h2>
<ul class="setting-list">
<li v-if="instanceWallpaperUsed">
<BooleanSetting path="hideInstanceWallpaper">
{{ $t('settings.hide_wallpaper') }}
</BooleanSetting>
</li>
<li>
<BooleanSetting path="disableStickyHeaders">
{{ $t('settings.disable_sticky_headers') }}
</BooleanSetting>
</li>
<li>
<BooleanSetting path="showScrollbars">
{{ $t('settings.show_scrollbars') }}
</BooleanSetting>
</li>
<li>
<UnitSetting
path="textSize"
step="0.1"
:units="['px', 'rem']"
:reset-default="{ 'px': 14, 'rem': 1 }"
timed-apply-mode
>
{{ $t('settings.text_size') }}
</UnitSetting>
<div>
<small>
<i18n-t
scope="global"
keypath="settings.text_size_tip"
tag="span"
>
<code>px</code>
<code>rem</code>
</i18n-t>
<br/>
<i18n-t
scope="global"
keypath="settings.text_size_tip2"
tag="span"
>
<code>14px</code>
</i18n-t>
</small>
</div>
</li>
</ul>
</div>
</div>
</template>
<script src="./appearance_tab.js"></script>
<style lang="scss">
.column-settings {
display: flex;
justify-content: space-evenly;
flex-wrap: wrap;
}
.column-settings .size-label {
display: block;
margin-bottom: 0.5em;
margin-top: 0.5em;
}
</style>

View file

@ -15,6 +15,11 @@
{{ $t('settings.hide_isp') }} {{ $t('settings.hide_isp') }}
</BooleanSetting> </BooleanSetting>
</li> </li>
<li v-if="instanceWallpaperUsed">
<BooleanSetting path="hideInstanceWallpaper">
{{ $t('settings.hide_wallpaper') }}
</BooleanSetting>
</li>
<li> <li>
<BooleanSetting path="stopGifs"> <BooleanSetting path="stopGifs">
{{ $t('settings.stop_gifs') }} {{ $t('settings.stop_gifs') }}
@ -96,6 +101,16 @@
<li> <li>
<h3>{{ $t('settings.columns') }}</h3> <h3>{{ $t('settings.columns') }}</h3>
</li> </li>
<li>
<BooleanSetting path="disableStickyHeaders">
{{ $t('settings.disable_sticky_headers') }}
</BooleanSetting>
</li>
<li>
<BooleanSetting path="showScrollbars">
{{ $t('settings.show_scrollbars') }}
</BooleanSetting>
</li>
<li> <li>
<BooleanSetting path="sidebarRight"> <BooleanSetting path="sidebarRight">
{{ $t('settings.right_sidebar') }} {{ $t('settings.right_sidebar') }}

View file

@ -373,9 +373,6 @@ const Status = {
hidePostStats () { hidePostStats () {
return this.mergedConfig.hidePostStats return this.mergedConfig.hidePostStats
}, },
shouldDisplayFavsAndRepeats () {
return !this.hidePostStats && this.isFocused && (this.combinedFavsAndRepeatsUsers.length > 0 || this.statusFromGlobalRepository.quotes_count)
},
muteBotStatuses () { muteBotStatuses () {
return this.mergedConfig.muteBotStatuses return this.mergedConfig.muteBotStatuses
}, },
@ -432,8 +429,6 @@ const Status = {
let multiplier = 60 * 1000 // minutes is smallest unit let multiplier = 60 * 1000 // minutes is smallest unit
switch (unit) { switch (unit) {
case 'm': case 'm':
break
case 'h':
multiplier *= 60 // hour multiplier *= 60 // hour
break break
case 'd': case 'd':

View file

@ -374,7 +374,6 @@
font-weight: bolder; font-weight: bolder;
font-size: 1.1em; font-size: 1.1em;
line-height: 1em; line-height: 1em;
color: var(--text);
} }
&:hover .stat-title { &:hover .stat-title {

View file

@ -484,7 +484,7 @@
<transition name="fade"> <transition name="fade">
<div <div
v-if="shouldDisplayFavsAndRepeats" v-if="!hidePostStats && isFocused && combinedFavsAndRepeatsUsers.length > 0"
class="favs-repeated-users" class="favs-repeated-users"
> >
<div class="stats"> <div class="stats">
@ -512,19 +512,6 @@
</div> </div>
</div> </div>
</UserListPopover> </UserListPopover>
<router-link
v-if="statusFromGlobalRepository.quotes_count > 0"
:to="{ name: 'quotes', params: { id: status.id } }"
>
<div
class="stat-count"
>
<a class="stat-title">{{ $t('status.quotes') }}</a>
<div class="stat-number">
{{ statusFromGlobalRepository.quotes_count }}
</div>
</div>
</router-link>
<div class="avatar-row"> <div class="avatar-row">
<AvatarList :users="combinedFavsAndRepeatsUsers" /> <AvatarList :users="combinedFavsAndRepeatsUsers" />
</div> </div>

View file

@ -25,7 +25,6 @@ const Timeline = {
'title', 'title',
'userId', 'userId',
'listId', 'listId',
'statusId',
'tag', 'tag',
'embedded', 'embedded',
'count', 'count',
@ -122,7 +121,6 @@ const Timeline = {
showImmediately, showImmediately,
userId: this.userId, userId: this.userId,
listId: this.listId, listId: this.listId,
statusId: this.statusId,
tag: this.tag tag: this.tag
}) })
}, },
@ -185,7 +183,6 @@ const Timeline = {
showImmediately: true, showImmediately: true,
userId: this.userId, userId: this.userId,
listId: this.listId, listId: this.listId,
statusId: this.statusId,
tag: this.tag tag: this.tag
}).then(({ statuses }) => { }).then(({ statuses }) => {
if (statuses && statuses.length === 0) { if (statuses && statuses.length === 0) {

View file

@ -19,8 +19,7 @@ export const timelineNames = () => {
bookmarks: 'nav.bookmarks', bookmarks: 'nav.bookmarks',
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'
} }
} }

View file

@ -678,7 +678,7 @@
"autohide_floating_post_button": "Automaticky skrýt tlačítko nového příspěvku (mobilní zařízení)", "autohide_floating_post_button": "Automaticky skrýt tlačítko nového příspěvku (mobilní zařízení)",
"minimal_scopes_mode": "Minimalizovat možnosti rozsahu příspěvků", "minimal_scopes_mode": "Minimalizovat možnosti rozsahu příspěvků",
"conversation_display": "Styl zobrazení konverzací", "conversation_display": "Styl zobrazení konverzací",
"conversation_display_tree": "Stromové zobrazení", "conversation_display_tree": "Stromový styl",
"conversation_display_tree_quick": "Stromový styl", "conversation_display_tree_quick": "Stromový styl",
"show_scrollbars": "Zobrazit posuvníky bočních sloupců", "show_scrollbars": "Zobrazit posuvníky bočních sloupců",
"third_column_mode": "Pokud je volné místo, zobrazit třetí sloupec obsahující", "third_column_mode": "Pokud je volné místo, zobrazit třetí sloupec obsahující",
@ -863,7 +863,7 @@
"favorites": "Oblíbené", "favorites": "Oblíbené",
"follow": "Sledovat", "follow": "Sledovat",
"follow_sent": "Požadavek odeslán!", "follow_sent": "Požadavek odeslán!",
"follow_progress": "Odesílám požadavek…", "follow_progress": "Odeslílám požadavek…",
"follow_unfollow": "Přestat sledovat", "follow_unfollow": "Přestat sledovat",
"followees": "Sledovaní", "followees": "Sledovaní",
"followers": "Sledující", "followers": "Sledující",

View file

@ -189,8 +189,7 @@
"mobile_notifications": "Open notifications (there are unread ones)", "mobile_notifications": "Open notifications (there are unread ones)",
"mobile_notifications_close": "Close notifications", "mobile_notifications_close": "Close notifications",
"mobile_notifications_mark_as_seen": "Mark all as seen", "mobile_notifications_mark_as_seen": "Mark all as seen",
"announcements": "Announcements", "announcements": "Announcements"
"quotes": "Quotes"
}, },
"notifications": { "notifications": {
"broken_favorite": "Unknown status, searching for it…", "broken_favorite": "Unknown status, searching for it…",
@ -374,14 +373,6 @@
"enter_current_password_to_confirm": "Enter your current password to confirm your identity", "enter_current_password_to_confirm": "Enter your current password to confirm your identity",
"post_look_feel": "Posts Look & Feel", "post_look_feel": "Posts Look & Feel",
"mention_links": "Mention links", "mention_links": "Mention links",
"appearance": "Appearance",
"confirm_new_setting": "Confirm new setting?",
"confirm_new_question": "Does this look ok? Setting will be reverted in 10 seconds.",
"revert": "Revert",
"confirm": "Confirm",
"text_size": "Text and interface size",
"text_size_tip": "Use {0} for absolute values, {1} will scale with browser default text size.",
"text_size_tip2": "Values other than {0} might break some things and themes",
"mfa": { "mfa": {
"otp": "OTP", "otp": "OTP",
"setup_otp": "Setup OTP", "setup_otp": "Setup OTP",
@ -1066,7 +1057,6 @@
"status": { "status": {
"favorites": "Favorites", "favorites": "Favorites",
"repeats": "Repeats", "repeats": "Repeats",
"quotes": "Quotes",
"repeat_confirm": "Do you really want to repeat this status?", "repeat_confirm": "Do you really want to repeat this status?",
"repeat_confirm_title": "Repeat confirmation", "repeat_confirm_title": "Repeat confirmation",
"repeat_confirm_accept_button": "Repeat", "repeat_confirm_accept_button": "Repeat",

View file

@ -202,13 +202,12 @@ const api = {
timeline = 'friends', timeline = 'friends',
tag = false, tag = false,
userId = false, userId = false,
listId = false, listId = false
statusId = false
}) { }) {
if (store.state.fetchers[timeline]) return if (store.state.fetchers[timeline]) return
const fetcher = store.state.backendInteractor.startFetchingTimeline({ const fetcher = store.state.backendInteractor.startFetchingTimeline({
timeline, store, userId, listId, statusId, tag timeline, store, userId, listId, tag
}) })
store.commit('addFetcher', { fetcherName: timeline, fetcher }) store.commit('addFetcher', { fetcherName: timeline, fetcher })
}, },

View file

@ -115,8 +115,7 @@ export const defaultState = {
sidebarColumnWidth: '25rem', sidebarColumnWidth: '25rem',
contentColumnWidth: '45rem', contentColumnWidth: '45rem',
notifsColumnWidth: '25rem', notifsColumnWidth: '25rem',
emojiReactionsScale: undefined, emojiReactionsScale: 1.0,
textSize: undefined, // instance default
navbarColumnStretch: false, navbarColumnStretch: false,
greentext: undefined, // instance default greentext: undefined, // instance default
useAtIcon: undefined, // instance default useAtIcon: undefined, // instance default
@ -174,10 +173,6 @@ const config = {
} }
}, },
mutations: { mutations: {
setOptionTemporarily (state, { name, value }) {
set(state, name, value)
applyConfig(state)
},
setOption (state, { name, value }) { setOption (state, { name, value }) {
set(state, name, value) set(state, name, value)
}, },
@ -208,31 +203,6 @@ const config = {
setHighlight ({ commit, dispatch }, { user, color, type }) { setHighlight ({ commit, dispatch }, { user, color, type }) {
commit('setHighlight', { user, color, type }) commit('setHighlight', { user, color, type })
}, },
setOptionTemporarily ({ commit, dispatch, state, rootState }, { name, value }) {
if (rootState.interface.temporaryChangesTimeoutId !== null) {
console.warn('Can\'t track more than one temporary change')
return
}
const oldValue = state[name]
commit('setOptionTemporarily', { name, value })
const confirm = () => {
dispatch('setOption', { name, value })
commit('clearTemporaryChanges')
}
const revert = () => {
commit('setOptionTemporarily', { name, value: oldValue })
commit('clearTemporaryChanges')
}
commit('setTemporaryChanges', {
timeoutId: setTimeout(revert, 10000),
confirm,
revert
})
},
setOption ({ commit, dispatch, state }, { name, value }) { setOption ({ commit, dispatch, state }, { name, value }) {
const exceptions = new Set([ const exceptions = new Set([
'useStreamingApi' 'useStreamingApi'
@ -261,7 +231,6 @@ const config = {
case 'sidebarColumnWidth': case 'sidebarColumnWidth':
case 'contentColumnWidth': case 'contentColumnWidth':
case 'notifsColumnWidth': case 'notifsColumnWidth':
case 'textSize':
case 'emojiReactionsScale': case 'emojiReactionsScale':
applyConfig(state) applyConfig(state)
break break

View file

@ -98,8 +98,6 @@ const defaultState = {
sidebarRight: false, sidebarRight: false,
subjectLineBehavior: 'email', subjectLineBehavior: 'email',
theme: 'pleroma-dark', theme: 'pleroma-dark',
emojiReactionsScale: 1.0,
textSize: '14px',
virtualScrolling: true, virtualScrolling: true,
sensitiveByDefault: false, sensitiveByDefault: false,
conversationDisplay: 'linear', conversationDisplay: 'linear',

View file

@ -1,8 +1,5 @@
const defaultState = { const defaultState = {
themeApplied: false, themeApplied: false,
temporaryChangesTimeoutId: null, // used for temporary options that revert after a timeout
temporaryChangesConfirm: () => {}, // used for applying temporary options
temporaryChangesRevert: () => {}, // used for reverting temporary options
settingsModalState: 'hidden', settingsModalState: 'hidden',
settingsModalLoadedUser: false, settingsModalLoadedUser: false,
settingsModalLoadedAdmin: false, settingsModalLoadedAdmin: false,
@ -39,17 +36,6 @@ const interfaceMod = {
state.settings.currentSaveStateNotice = { error: true, errorData: error } state.settings.currentSaveStateNotice = { error: true, errorData: error }
} }
}, },
setTemporaryChanges (state, { timeoutId, confirm, revert }) {
state.temporaryChangesTimeoutId = timeoutId
state.temporaryChangesConfirm = confirm
state.temporaryChangesRevert = revert
},
clearTemporaryChanges (state) {
clearTimeout(state.temporaryChangesTimeoutId)
state.temporaryChangesTimeoutId = null
state.temporaryChangesConfirm = () => {}
state.temporaryChangesRevert = () => {}
},
setThemeApplied (state) { setThemeApplied (state) {
state.themeApplied = true state.themeApplied = true
}, },

View file

@ -108,7 +108,6 @@ 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_STATUS_QUOTES_URL = id => `/api/v1/pleroma/statuses/${id}/quotes`
const PLEROMA_USER_FAVORITES_TIMELINE_URL = id => `/api/v1/pleroma/accounts/${id}/favourites` 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'
@ -686,7 +685,6 @@ const fetchTimeline = ({
until = false, until = false,
userId = false, userId = false,
listId = false, listId = false,
statusId = false,
tag = false, tag = false,
withMuted = false, withMuted = false,
replyVisibility = 'all', replyVisibility = 'all',
@ -704,8 +702,7 @@ const fetchTimeline = ({
favorites: MASTODON_USER_FAVORITES_TIMELINE_URL, favorites: MASTODON_USER_FAVORITES_TIMELINE_URL,
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
} }
const isNotifications = timeline === 'notifications' const isNotifications = timeline === 'notifications'
const params = [] const params = []
@ -724,10 +721,6 @@ const fetchTimeline = ({
url = url(listId) url = url(listId)
} }
if (timeline === 'quotes') {
url = url(statusId)
}
if (minId) { if (minId) {
params.push(['min_id', minId]) params.push(['min_id', minId])
} }

View file

@ -5,8 +5,8 @@ import followRequestFetcher from '../../services/follow_request_fetcher/follow_r
import listsFetcher from '../../services/lists_fetcher/lists_fetcher.service.js' import listsFetcher from '../../services/lists_fetcher/lists_fetcher.service.js'
const backendInteractorService = credentials => ({ const backendInteractorService = credentials => ({
startFetchingTimeline ({ timeline, store, userId = false, listId = false, statusId = false, tag }) { startFetchingTimeline ({ timeline, store, userId = false, listId = false, tag }) {
return timelineFetcher.startFetching({ timeline, store, credentials, userId, listId, statusId, tag }) return timelineFetcher.startFetching({ timeline, store, credentials, userId, listId, tag })
}, },
fetchTimeline (args) { fetchTimeline (args) {

View file

@ -331,7 +331,6 @@ export const parseStatus = (data) => {
output.quote_id = pleroma.quote_id ? pleroma.quote_id : (output.quote ? output.quote.id : undefined) output.quote_id = pleroma.quote_id ? pleroma.quote_id : (output.quote ? output.quote.id : undefined)
output.quote_url = pleroma.quote_url output.quote_url = pleroma.quote_url
output.quote_visible = pleroma.quote_visible output.quote_visible = pleroma.quote_visible
output.quotes_count = pleroma.quotes_count
} else { } else {
output.text = data.content output.text = data.content
output.summary = data.spoiler_text output.summary = data.spoiler_text

View file

@ -148,19 +148,8 @@ export const applyTheme = async (input, onFinish = (data) => {}) => {
return Promise.resolve() return Promise.resolve()
} }
const configColumns = ({ const configColumns = ({ sidebarColumnWidth, contentColumnWidth, notifsColumnWidth, emojiReactionsScale }) =>
sidebarColumnWidth, ({ sidebarColumnWidth, contentColumnWidth, notifsColumnWidth, emojiReactionsScale })
contentColumnWidth,
notifsColumnWidth,
emojiReactionsScale,
textSize
}) => ({
sidebarColumnWidth,
contentColumnWidth,
notifsColumnWidth,
emojiReactionsScale,
textSize
})
const defaultConfigColumns = configColumns(defaultState) const defaultConfigColumns = configColumns(defaultState)
@ -186,7 +175,6 @@ export const applyConfig = (config) => {
styleSheet.toString() styleSheet.toString()
styleSheet.insertRule(`:root { ${rules} }`, 'index-max') styleSheet.insertRule(`:root { ${rules} }`, 'index-max')
body.classList.remove('hidden') body.classList.remove('hidden')
} }

View file

@ -24,7 +24,6 @@ const fetchAndUpdate = ({
showImmediately = false, showImmediately = false,
userId = false, userId = false,
listId = false, listId = false,
statusId = false,
tag = false, tag = false,
until, until,
since since
@ -48,7 +47,6 @@ const fetchAndUpdate = ({
args.userId = userId args.userId = userId
args.listId = listId args.listId = listId
args.statusId = statusId
args.tag = tag args.tag = tag
args.withMuted = !hideMutedPosts args.withMuted = !hideMutedPosts
if (loggedIn && ['friends', 'public', 'publicAndExternal'].includes(timeline)) { if (loggedIn && ['friends', 'public', 'publicAndExternal'].includes(timeline)) {
@ -80,15 +78,15 @@ const fetchAndUpdate = ({
}) })
} }
const startFetching = ({ timeline = 'friends', credentials, store, userId = false, listId = false, statusId = false, tag = false }) => { const startFetching = ({ timeline = 'friends', credentials, store, userId = false, listId = false, tag = false }) => {
const rootState = store.rootState || store.state const rootState = store.rootState || store.state
const timelineData = rootState.statuses.timelines[camelCase(timeline)] const timelineData = rootState.statuses.timelines[camelCase(timeline)]
const showImmediately = timelineData.visibleStatuses.length === 0 const showImmediately = timelineData.visibleStatuses.length === 0
timelineData.userId = userId timelineData.userId = userId
timelineData.listId = listId timelineData.listId = listId
fetchAndUpdate({ timeline, credentials, store, showImmediately, userId, listId, statusId, tag }) fetchAndUpdate({ timeline, credentials, store, showImmediately, userId, listId, tag })
const boundFetchAndUpdate = () => const boundFetchAndUpdate = () =>
fetchAndUpdate({ timeline, credentials, store, userId, listId, statusId, tag }) fetchAndUpdate({ timeline, credentials, store, userId, listId, tag })
return promiseInterval(boundFetchAndUpdate, 10000) return promiseInterval(boundFetchAndUpdate, 10000)
} }
const timelineFetcher = { const timelineFetcher = {