diff --git a/package.json b/package.json index 1d0382d46..20c01a0b3 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "ci-eslint": "yarn exec eslint", "ci-stylelint": "yarn exec stylelint '**/*.scss' '**/*.vue'", "lint": "yarn ci-biome; yarn ci-eslint; yarn ci-stylelint", - "lint-fix": "yarn exec eslint -- --fix; yarn exec stylelint '**/*.scss' '**/*.vue' --fix; biome check --write" + "lint-fix": "yarn exec eslint --fix; yarn exec stylelint '**/*.scss' '**/*.vue' --fix; biome check --write" }, "dependencies": { "@babel/runtime": "7.28.4", diff --git a/src/App.js b/src/App.js index 0128fc198..6dcd80a73 100644 --- a/src/App.js +++ b/src/App.js @@ -26,7 +26,6 @@ import { useInstanceStore } from 'src/stores/instance.js' import { useInstanceCapabilitiesStore } from 'src/stores/instance_capabilities.js' import { useInterfaceStore } from 'src/stores/interface.js' import { useShoutStore } from 'src/stores/shout.js' -import { useSyncConfigStore } from 'src/stores/sync_config.js' export default { name: 'app', @@ -73,7 +72,7 @@ export default { }, created() { // Load the locale from the storage - const val = useSyncConfigStore().mergedConfig.interfaceLanguage + const val = this.$store.getters.mergedConfig.interfaceLanguage this.$store.dispatch('setOption', { name: 'interfaceLanguage', value: val }) document.getElementById('modal').classList = ['-' + this.layoutType] @@ -123,7 +122,7 @@ export default { ] }, navClasses() { - const { navbarColumnStretch } = useSyncConfigStore().mergedConfig + const { navbarColumnStretch } = this.$store.getters.mergedConfig return [ '-' + this.layoutType, ...(navbarColumnStretch ? ['-column-stretch'] : []), @@ -158,19 +157,19 @@ export default { if (this.isChats) return false if (this.isListEdit) return false return ( - useSyncConfigStore().mergedConfig.alwaysShowNewPostButton || + this.$store.getters.mergedConfig.alwaysShowNewPostButton || this.layoutType === 'mobile' ) }, shoutboxPosition() { - return useSyncConfigStore().mergedConfig.alwaysShowNewPostButton || false + return this.$store.getters.mergedConfig.alwaysShowNewPostButton || false }, hideShoutbox() { - return useSyncConfigStore().mergedConfig.hideShoutbox + return this.$store.getters.mergedConfig.hideShoutbox }, reverseLayout() { const { thirdColumnMode, sidebarRight: reverseSetting } = - useSyncConfigStore().mergedConfig + this.$store.getters.mergedConfig if (this.layoutType !== 'wide') { return reverseSetting } else { @@ -180,10 +179,10 @@ export default { } }, noSticky() { - return useSyncConfigStore().mergedConfig.disableStickyHeaders + return this.$store.getters.mergedConfig.disableStickyHeaders }, showScrollbars() { - return useSyncConfigStore().mergedConfig.showScrollbars + return this.$store.getters.mergedConfig.showScrollbars }, scrollParent() { return window /* this.$refs.appContentRef */ @@ -191,7 +190,7 @@ export default { showInstanceSpecificPanel() { return ( this.instanceSpecificPanelPresent && - !useSyncConfigStore().mergedConfig.hideISP + !this.$store.getters.mergedConfig.hideISP ) }, ...mapGetters(['mergedConfig']), diff --git a/src/boot/after_store.js b/src/boot/after_store.js index 97f9b8a42..b7e97cf45 100644 --- a/src/boot/after_store.js +++ b/src/boot/after_store.js @@ -17,7 +17,7 @@ config.autoAddCss = false import App from '../App.vue' import backendInteractorService from '../services/backend_interactor_service/backend_interactor_service.js' import FaviconService from '../services/favicon_service/favicon_service.js' -import { applyStyleConfig } from '../services/style_setter/style_setter.js' +import { applyConfig } from '../services/style_setter/style_setter.js' import { initServiceWorker, updateFocus } from '../services/sw/sw.js' import { windowHeight, @@ -88,25 +88,25 @@ const getInstanceConfig = async ({ store }) => { data.pleroma, ) useInstanceStore().set({ - path: 'textlimit', + name: 'textlimit', value: textlimit, }) useInstanceStore().set({ - path: 'accountApprovalRequired', + name: 'accountApprovalRequired', value: data.approval_required, }) useInstanceStore().set({ - path: 'birthdayRequired', + name: 'birthdayRequired', value: !!data.pleroma?.metadata.birthday_required, }) useInstanceStore().set({ - path: 'birthdayMinAge', + name: 'birthdayMinAge', value: data.pleroma?.metadata.birthday_min_age || 0, }) if (vapidPublicKey) { useInstanceStore().set({ - path: 'vapidPublicKey', + name: 'vapidPublicKey', value: vapidPublicKey, }) } @@ -258,7 +258,7 @@ const getAppSecret = async ({ store }) => { const resolveStaffAccounts = ({ store, accounts }) => { const nicknames = accounts.map((uri) => uri.split('/').pop()) useInstanceStore().set({ - path: 'staffAccounts', + name: 'staffAccounts', value: nicknames, }) } @@ -384,20 +384,20 @@ const getNodeInfo = async ({ store }) => { const software = data.software useInstanceStore().set({ - path: 'backendVersion', + name: 'backendVersion', value: software.version, }) useInstanceStore().set({ - path: 'backendRepository', + name: 'backendRepository', value: software.repository, }) const priv = metadata.private - useInstanceStore().set({ path: 'privateMode', value: priv }) + useInstanceStore().set({ name: 'privateMode', value: priv }) const frontendVersion = window.___pleromafe_commit_hash useInstanceStore().set({ - path: 'frontendVersion', + name: 'frontendVersion', value: frontendVersion, }) @@ -547,7 +547,7 @@ const afterStoreSetup = async ({ pinia, store, storageError, i18n }) => { return Promise.reject(e) } - applyStyleConfig(store.state.config, i18n.global) + applyConfig(store.state.config, i18n.global) // Now we can try getting the server settings and logging in // Most of these are preloaded into the index.html so blocking is minimized diff --git a/src/components/about/about.js b/src/components/about/about.js index ab1ace320..f52d5c797 100644 --- a/src/components/about/about.js +++ b/src/components/about/about.js @@ -5,7 +5,6 @@ import StaffPanel from '../staff_panel/staff_panel.vue' import TermsOfServicePanel from '../terms_of_service_panel/terms_of_service_panel.vue' import { useInstanceStore } from 'src/stores/instance.js' -import { useSyncConfigStore } from 'src/stores/sync_config.js' const About = { components: { @@ -22,7 +21,7 @@ const About = { showInstanceSpecificPanel() { return ( useInstanceStore().instanceIdentity.showInstanceSpecificPanel && - !useSyncConfigStore().mergedConfig.hideISP && + !this.$store.getters.mergedConfig.hideISP && useInstanceStore().instanceIdentity.instanceSpecificPanelContent ) }, diff --git a/src/components/account_actions/account_actions.js b/src/components/account_actions/account_actions.js index 38f585675..8fce4b5af 100644 --- a/src/components/account_actions/account_actions.js +++ b/src/components/account_actions/account_actions.js @@ -8,7 +8,6 @@ import ProgressButton from '../progress_button/progress_button.vue' import { useInstanceCapabilitiesStore } from 'src/stores/instance_capabilities.js' import { useReportsStore } from 'src/stores/reports' -import { useSyncConfigStore } from 'src/stores/sync_config.js' import { library } from '@fortawesome/fontawesome-svg-core' import { faEllipsisV } from '@fortawesome/free-solid-svg-icons' @@ -90,10 +89,10 @@ const AccountActions = { }, computed: { shouldConfirmBlock() { - return useSyncConfigStore().mergedConfig.modalOnBlock + return this.$store.getters.mergedConfig.modalOnBlock }, shouldConfirmRemoveUserFromFollowers() { - return useSyncConfigStore().mergedConfig.modalOnRemoveUserFromFollowers + return this.$store.getters.mergedConfig.modalOnRemoveUserFromFollowers }, ...mapState(useInstanceCapabilitiesStore, [ 'blockExpiration', diff --git a/src/components/attachment/attachment.js b/src/components/attachment/attachment.js index a67bd475e..db5171c80 100644 --- a/src/components/attachment/attachment.js +++ b/src/components/attachment/attachment.js @@ -9,7 +9,6 @@ import VideoAttachment from '../video_attachment/video_attachment.vue' import { useInstanceStore } from 'src/stores/instance.js' import { useInstanceCapabilitiesStore } from 'src/stores/instance_capabilities.js' import { useMediaViewerStore } from 'src/stores/media_viewer' -import { useSyncConfigStore } from 'src/stores/sync_config.js' import { library } from '@fortawesome/fontawesome-svg-core' import { @@ -59,8 +58,8 @@ const Attachment = { localDescription: this.description || this.attachment.description, nsfwImage: useInstanceStore().instanceIdentity.nsfwCensorImage || nsfwImage, - hideNsfwLocal: useSyncConfigStore().mergedConfig.hideNsfw, - preloadImage: useSyncConfigStore().mergedConfig.preloadImage, + hideNsfwLocal: this.$store.getters.mergedConfig.hideNsfw, + preloadImage: this.$store.getters.mergedConfig.preloadImage, loading: false, img: fileTypeService.fileType(this.attachment.mimetype) === 'image' && @@ -94,7 +93,7 @@ const Attachment = { return this.size === 'hide' }, useContainFit() { - return useSyncConfigStore().mergedConfig.useContainFit + return this.$store.getters.mergedConfig.useContainFit }, placeholderName() { if (this.attachment.description === '' || !this.attachment.description) { diff --git a/src/components/confirm_modal/mute_confirm.js b/src/components/confirm_modal/mute_confirm.js index 888aa017b..c486ad7e4 100644 --- a/src/components/confirm_modal/mute_confirm.js +++ b/src/components/confirm_modal/mute_confirm.js @@ -1,10 +1,8 @@ -import { mapState } from 'pinia' +import { mapGetters } from 'vuex' import Select from 'src/components/select/select.vue' import ConfirmModal from './confirm_modal.vue' -import { useSyncConfigStore } from 'src/stores/sync_config.js' - export default { props: ['type', 'user', 'status'], emits: ['hide', 'show', 'muted'], @@ -45,7 +43,7 @@ export default { } } }, - ...mapState(useSyncConfigStore, ['mergedConfig']), + ...mapGetters(['mergedConfig']), }, methods: { optionallyPrompt() { diff --git a/src/components/conversation/conversation.js b/src/components/conversation/conversation.js index 76dd26352..cb7cf4782 100644 --- a/src/components/conversation/conversation.js +++ b/src/components/conversation/conversation.js @@ -9,7 +9,6 @@ import Status from '../status/status.vue' import ThreadTree from '../thread_tree/thread_tree.vue' import { useInterfaceStore } from 'src/stores/interface' -import { useSyncConfigStore } from 'src/stores/sync_config.js' import { library } from '@fortawesome/fontawesome-svg-core' import { @@ -82,7 +81,7 @@ const conversation = { // maxDepthInThread = max number of depths that is *visible* // since our depth starts with 0 and "showing" means "showing children" // there is a -2 here - const maxDepth = useSyncConfigStore().mergedConfig.maxDepthInThread - 2 + const maxDepth = this.$store.getters.mergedConfig.maxDepthInThread - 2 return maxDepth >= 1 ? maxDepth : 1 }, streamingEnabled() { @@ -92,22 +91,22 @@ const conversation = { ) }, displayStyle() { - return useSyncConfigStore().mergedConfig.conversationDisplay + return this.$store.getters.mergedConfig.conversationDisplay }, isTreeView() { return !this.isLinearView }, treeViewIsSimple() { - return !useSyncConfigStore().mergedConfig.conversationTreeAdvanced + return !this.$store.getters.mergedConfig.conversationTreeAdvanced }, isLinearView() { return this.displayStyle === 'linear' }, shouldFadeAncestors() { - return useSyncConfigStore().mergedConfig.conversationTreeFadeAncestors + return this.$store.getters.mergedConfig.conversationTreeFadeAncestors }, otherRepliesButtonPosition() { - return useSyncConfigStore().mergedConfig.conversationOtherRepliesButton + return this.$store.getters.mergedConfig.conversationOtherRepliesButton }, showOtherRepliesButtonBelowStatus() { return this.otherRepliesButtonPosition === 'below' diff --git a/src/components/desktop_nav/desktop_nav.js b/src/components/desktop_nav/desktop_nav.js index 0871e0bd3..943c66d1e 100644 --- a/src/components/desktop_nav/desktop_nav.js +++ b/src/components/desktop_nav/desktop_nav.js @@ -5,7 +5,6 @@ import ConfirmModal from '../confirm_modal/confirm_modal.vue' import { useInstanceStore } from 'src/stores/instance.js' import { useInterfaceStore } from 'src/stores/interface' -import { useSyncConfigStore } from 'src/stores/sync_config.js' import { library } from '@fortawesome/fontawesome-svg-core' import { @@ -97,7 +96,7 @@ export default { return this.$store.state.users.currentUser }, shouldConfirmLogout() { - return useSyncConfigStore().mergedConfig.modalOnLogout + return this.$store.getters.mergedConfig.modalOnLogout }, }, methods: { diff --git a/src/components/dialog_modal/dialog_modal.js b/src/components/dialog_modal/dialog_modal.js index e5c399086..8070d3429 100644 --- a/src/components/dialog_modal/dialog_modal.js +++ b/src/components/dialog_modal/dialog_modal.js @@ -1,5 +1,3 @@ -import { useSyncConfigStore } from 'src/stores/sync_config.js' - const DialogModal = { props: { darkOverlay: { @@ -15,7 +13,7 @@ const DialogModal = { }, computed: { mobileCenter() { - return useSyncConfigStore().mergedConfig.modalMobileCenter + return this.$store.getters.mergedConfig.modalMobileCenter }, }, } diff --git a/src/components/draft/draft.js b/src/components/draft/draft.js index 5ee85dff4..971a75b10 100644 --- a/src/components/draft/draft.js +++ b/src/components/draft/draft.js @@ -6,8 +6,6 @@ import Gallery from 'src/components/gallery/gallery.vue' import PostStatusForm from 'src/components/post_status_form/post_status_form.vue' import StatusContent from 'src/components/status_content/status_content.vue' -import { useSyncConfigStore } from 'src/stores/sync_config.js' - import { library } from '@fortawesome/fontawesome-svg-core' import { faPollH } from '@fortawesome/free-solid-svg-icons' @@ -59,7 +57,7 @@ const Draft = { : undefined }, localCollapseSubjectDefault() { - return useSyncConfigStore().mergedConfig.collapseMessageWithSubject + return this.$store.getters.mergedConfig.collapseMessageWithSubject }, nsfwClickthrough() { if (!this.draft.nsfw) { diff --git a/src/components/draft_closer/draft_closer.js b/src/components/draft_closer/draft_closer.js index 5f297bf4c..d724ab4ac 100644 --- a/src/components/draft_closer/draft_closer.js +++ b/src/components/draft_closer/draft_closer.js @@ -1,7 +1,5 @@ import DialogModal from 'src/components/dialog_modal/dialog_modal.vue' -import { useSyncConfigStore } from 'src/stores/sync_config.js' - const DraftCloser = { data() { return { @@ -14,10 +12,10 @@ const DraftCloser = { emits: ['save', 'discard'], computed: { action() { - if (useSyncConfigStore().mergedConfig.autoSaveDraft) { + if (this.$store.getters.mergedConfig.autoSaveDraft) { return 'save' } else { - return useSyncConfigStore().mergedConfig.unsavedPostAction + return this.$store.getters.mergedConfig.unsavedPostAction } }, shouldConfirm() { diff --git a/src/components/emoji_input/emoji_input.js b/src/components/emoji_input/emoji_input.js index 4917a11fb..24794640e 100644 --- a/src/components/emoji_input/emoji_input.js +++ b/src/components/emoji_input/emoji_input.js @@ -2,16 +2,13 @@ import { take } from 'lodash' import Popover from 'src/components/popover/popover.vue' import ScreenReaderNotice from 'src/components/screen_reader_notice/screen_reader_notice.vue' +import { ensureFinalFallback } from '../../i18n/languages.js' import Completion from '../../services/completion/completion.js' import { findOffset } from '../../services/offset_finder/offset_finder.service.js' import genRandomSeed from '../../services/random_seed/random_seed.service.js' import EmojiPicker from '../emoji_picker/emoji_picker.vue' import UnicodeDomainIndicator from '../unicode_domain_indicator/unicode_domain_indicator.vue' -import { useSyncConfigStore } from 'src/stores/sync_config.js' - -import { ensureFinalFallback } from 'src/i18n/languages.js' - import { library } from '@fortawesome/fontawesome-svg-core' import { faSmileBeam } from '@fortawesome/free-regular-svg-icons' @@ -134,10 +131,10 @@ const EmojiInput = { }, computed: { padEmoji() { - return useSyncConfigStore().mergedConfig.padEmoji + return this.$store.getters.mergedConfig.padEmoji }, defaultCandidateIndex() { - return useSyncConfigStore().mergedConfig.autocompleteSelect ? 0 : -1 + return this.$store.getters.mergedConfig.autocompleteSelect ? 0 : -1 }, preText() { return this.modelValue.slice(0, this.caret) @@ -166,7 +163,7 @@ const EmojiInput = { }, languages() { return ensureFinalFallback( - useSyncConfigStore().mergedConfig.interfaceLanguage, + this.$store.getters.mergedConfig.interfaceLanguage, ) }, maybeLocalizedEmojiNamesAndKeywords() { @@ -334,6 +331,7 @@ const EmojiInput = { if (!this.pickerShown) { this.scrollIntoView() this.$refs.picker.showPicker() + this.$refs.picker.startEmojiLoad() } else { this.$refs.picker.hidePicker() } diff --git a/src/components/emoji_input/suggestor.js b/src/components/emoji_input/suggestor.js index c0d8f7ca1..c478fea67 100644 --- a/src/components/emoji_input/suggestor.js +++ b/src/components/emoji_input/suggestor.js @@ -1,5 +1,3 @@ -import { useEmojiStore } from 'src/stores/emoji.js' - /** * suggest - generates a suggestor function to be used by emoji-input * data: object providing source information for specific types of suggestions: diff --git a/src/components/emoji_picker/emoji_picker.js b/src/components/emoji_picker/emoji_picker.js index 1e4594b2c..79c0ab47e 100644 --- a/src/components/emoji_picker/emoji_picker.js +++ b/src/components/emoji_picker/emoji_picker.js @@ -8,7 +8,6 @@ import StillImage from '../still-image/still-image.vue' import { useEmojiStore } from 'src/stores/emoji.js' import { useInstanceStore } from 'src/stores/instance.js' -import { useSyncConfigStore } from 'src/stores/sync_config.js' import { library } from '@fortawesome/fontawesome-svg-core' import { @@ -341,7 +340,7 @@ const EmojiPicker = { this.$nextTick(() => { this.updateEmojiSize() }) - return useSyncConfigStore().mergedConfig.fontSize + return this.$store.getters.mergedConfig.fontSize }, emojiHeight() { return this.emojiSize @@ -406,7 +405,7 @@ const EmojiPicker = { }, languages() { return ensureFinalFallback( - useSyncConfigStore().mergedConfig.interfaceLanguage, + this.$store.getters.mergedConfig.interfaceLanguage, ) }, maybeLocalizedEmojiName() { diff --git a/src/components/follow_button/follow_button.js b/src/components/follow_button/follow_button.js index 539749bc8..eb545b28d 100644 --- a/src/components/follow_button/follow_button.js +++ b/src/components/follow_button/follow_button.js @@ -3,8 +3,6 @@ import { requestUnfollow, } from '../../services/follow_manipulate/follow_manipulate' import ConfirmModal from '../confirm_modal/confirm_modal.vue' - -import { useSyncConfigStore } from 'src/stores/sync_config.js' export default { props: ['relationship', 'user', 'labelFollowing', 'buttonClass'], components: { @@ -18,7 +16,7 @@ export default { }, computed: { shouldConfirmUnfollow() { - return useSyncConfigStore().mergedConfig.modalOnUnfollow + return this.$store.getters.mergedConfig.modalOnUnfollow }, isPressed() { return this.inProgress || this.relationship.following diff --git a/src/components/follow_request_card/follow_request_card.js b/src/components/follow_request_card/follow_request_card.js index b7959a2d3..c037ddf42 100644 --- a/src/components/follow_request_card/follow_request_card.js +++ b/src/components/follow_request_card/follow_request_card.js @@ -2,8 +2,6 @@ import { notificationsFromStore } from '../../services/notification_utils/notifi import BasicUserCard from '../basic_user_card/basic_user_card.vue' import ConfirmModal from '../confirm_modal/confirm_modal.vue' -import { useSyncConfigStore } from 'src/stores/sync_config.js' - const FollowRequestCard = { props: ['user'], components: { @@ -78,7 +76,7 @@ const FollowRequestCard = { }, computed: { mergedConfig() { - return useSyncConfigStore().mergedConfig + return this.$store.getters.mergedConfig }, shouldConfirmApprove() { return this.mergedConfig.modalOnApproveFollow diff --git a/src/components/link-preview/link-preview.js b/src/components/link-preview/link-preview.js index a465cc213..ac91f916d 100644 --- a/src/components/link-preview/link-preview.js +++ b/src/components/link-preview/link-preview.js @@ -1,6 +1,4 @@ -import { mapState } from 'pinia' - -import { useSyncConfigStore } from 'src/stores/sync_config.js' +import { mapGetters } from 'vuex' const LinkPreview = { name: 'LinkPreview', @@ -26,7 +24,7 @@ const LinkPreview = { hideNsfwConfig() { return this.mergedConfig.hideNsfw }, - ...mapState(useSyncConfigStore, ['mergedConfig']), + ...mapGetters(['mergedConfig']), }, created() { if (this.useImage) { diff --git a/src/components/media_upload/media_upload.js b/src/components/media_upload/media_upload.js index be62142c6..ee61fa369 100644 --- a/src/components/media_upload/media_upload.js +++ b/src/components/media_upload/media_upload.js @@ -2,7 +2,6 @@ import fileSizeFormatService from '../../services/file_size_format/file_size_for import statusPosterService from '../../services/status_poster/status_poster.service.js' import { useInstanceStore } from 'src/stores/instance.js' -import { useSyncConfigStore } from 'src/stores/sync_config.js' import { library } from '@fortawesome/fontawesome-svg-core' import { faCircleNotch, faUpload } from '@fortawesome/free-solid-svg-icons' @@ -34,7 +33,7 @@ const mediaUpload = { } // Skip if image compression is disabled - if (!useSyncConfigStore().mergedConfig.imageCompression) { + if (!this.$store.getters.mergedConfig.imageCompression) { return file } @@ -79,7 +78,7 @@ const mediaUpload = { // Convert to WebP if supported and alwaysUseJpeg is false, otherwise JPEG const type = - !useSyncConfigStore().mergedConfig.alwaysUseJpeg && supportsWebP + !this.$store.getters.mergedConfig.alwaysUseJpeg && supportsWebP ? 'image/webp' : 'image/jpeg' const extension = type === 'image/webp' ? '.webp' : '.jpg' diff --git a/src/components/mentions_line/mentions_line.js b/src/components/mentions_line/mentions_line.js index bd3882866..e6aa392a0 100644 --- a/src/components/mentions_line/mentions_line.js +++ b/src/components/mentions_line/mentions_line.js @@ -1,9 +1,7 @@ -import { mapState } from 'pinia' +import { mapGetters } from 'vuex' import MentionLink from 'src/components/mention_link/mention_link.vue' -import { useSyncConfigStore } from 'src/stores/sync_config.js' - export const MENTIONS_LIMIT = 5 const MentionsLine = { @@ -28,7 +26,7 @@ const MentionsLine = { manyMentions() { return this.extraMentions.length > 0 }, - ...mapState(useSyncConfigStore, ['mergedConfig']), + ...mapGetters(['mergedConfig']), }, methods: { toggleShowMore() { diff --git a/src/components/mobile_nav/mobile_nav.js b/src/components/mobile_nav/mobile_nav.js index 6242344ce..c5b1d66f6 100644 --- a/src/components/mobile_nav/mobile_nav.js +++ b/src/components/mobile_nav/mobile_nav.js @@ -13,7 +13,7 @@ import SideDrawer from '../side_drawer/side_drawer.vue' import { useAnnouncementsStore } from 'src/stores/announcements.js' import { useInstanceStore } from 'src/stores/instance.js' -import { useSyncConfigStore } from 'src/stores/sync_config.js' +import { useServerSideStorageStore } from 'src/stores/serverSideStorage.js' import { library } from '@fortawesome/fontawesome-svg-core' import { @@ -75,15 +75,15 @@ const MobileNav = { return this.$route.name === 'chat' }, ...mapState(useAnnouncementsStore, ['unreadAnnouncementCount']), - ...mapState(useSyncConfigStore, { + ...mapState(useServerSideStorageStore, { pinnedItems: (store) => new Set(store.prefsStorage.collections.pinnedNavItems).has('chats'), }), shouldConfirmLogout() { - return useSyncConfigStore().mergedConfig.modalOnLogout + return this.$store.getters.mergedConfig.modalOnLogout }, closingDrawerMarksAsSeen() { - return useSyncConfigStore().mergedConfig.closingDrawerMarksAsSeen + return this.$store.getters.mergedConfig.closingDrawerMarksAsSeen }, ...mapGetters(['unreadChatCount']), }, diff --git a/src/components/mobile_post_status_button/mobile_post_status_button.js b/src/components/mobile_post_status_button/mobile_post_status_button.js index 594cd6688..83103c827 100644 --- a/src/components/mobile_post_status_button/mobile_post_status_button.js +++ b/src/components/mobile_post_status_button/mobile_post_status_button.js @@ -1,7 +1,6 @@ import { debounce } from 'lodash' import { usePostStatusStore } from 'src/stores/post_status.js' -import { useSyncConfigStore } from 'src/stores/sync_config.js' import { library } from '@fortawesome/fontawesome-svg-core' import { faPen } from '@fortawesome/free-solid-svg-icons' @@ -46,10 +45,10 @@ const MobilePostStatusButton = { ) }, isPersistent() { - return !!useSyncConfigStore().mergedConfig.alwaysShowNewPostButton + return !!this.$store.getters.mergedConfig.alwaysShowNewPostButton }, autohideFloatingPostButton() { - return !!useSyncConfigStore().mergedConfig.autohideFloatingPostButton + return !!this.$store.getters.mergedConfig.autohideFloatingPostButton }, }, watch: { diff --git a/src/components/nav_panel/nav_panel.js b/src/components/nav_panel/nav_panel.js index 9e5901f24..8aff31f02 100644 --- a/src/components/nav_panel/nav_panel.js +++ b/src/components/nav_panel/nav_panel.js @@ -12,7 +12,7 @@ import NavigationPins from 'src/components/navigation/navigation_pins.vue' import { useAnnouncementsStore } from 'src/stores/announcements' import { useInstanceStore } from 'src/stores/instance.js' import { useInstanceCapabilitiesStore } from 'src/stores/instance_capabilities.js' -import { useSyncConfigStore } from 'src/stores/sync_config.js' +import { useServerSideStorageStore } from 'src/stores/serverSideStorage' import { library } from '@fortawesome/fontawesome-svg-core' import { @@ -84,28 +84,28 @@ const NavPanel = { this.editMode = !this.editMode }, toggleCollapse() { - useSyncConfigStore().setPreference({ + useServerSideStorageStore().setPreference({ path: 'simple.collapseNav', value: !this.collapsed, }) - useSyncConfigStore().pushSyncConfig() + useServerSideStorageStore().pushServerSideStorage() }, isPinned(item) { return this.pinnedItems.has(item) }, togglePin(item) { if (this.isPinned(item)) { - useSyncConfigStore().removeCollectionPreference({ + useServerSideStorageStore().removeCollectionPreference({ path: 'collections.pinnedNavItems', value: item, }) } else { - useSyncConfigStore().addCollectionPreference({ + useServerSideStorageStore().addCollectionPreference({ path: 'collections.pinnedNavItems', value: item, }) } - useSyncConfigStore().pushSyncConfig() + useServerSideStorageStore().pushServerSideStorage() }, }, computed: { @@ -122,7 +122,7 @@ const NavPanel = { ...mapPiniaState(useInstanceStore, { privateMode: (store) => store.private, }), - ...mapPiniaState(useSyncConfigStore, { + ...mapPiniaState(useServerSideStorageStore, { collapsed: (store) => store.prefsStorage.simple.collapseNav, pinnedItems: (store) => new Set(store.prefsStorage.collections.pinnedNavItems), diff --git a/src/components/navigation/navigation_entry.js b/src/components/navigation/navigation_entry.js index 7a43000ce..3384534be 100644 --- a/src/components/navigation/navigation_entry.js +++ b/src/components/navigation/navigation_entry.js @@ -5,7 +5,7 @@ import { routeTo } from 'src/components/navigation/navigation.js' import OptionalRouterLink from 'src/components/optional_router_link/optional_router_link.vue' import { useAnnouncementsStore } from 'src/stores/announcements.js' -import { useSyncConfigStore } from 'src/stores/sync_config.js' +import { useServerSideStorageStore } from 'src/stores/serverSideStorage.js' import { library } from '@fortawesome/fontawesome-svg-core' import { faThumbtack } from '@fortawesome/free-solid-svg-icons' @@ -23,17 +23,17 @@ const NavigationEntry = { }, togglePin(value) { if (this.isPinned(value)) { - useSyncConfigStore().removeCollectionPreference({ + useServerSideStorageStore().removeCollectionPreference({ path: 'collections.pinnedNavItems', value, }) } else { - useSyncConfigStore().addCollectionPreference({ + useServerSideStorageStore().addCollectionPreference({ path: 'collections.pinnedNavItems', value, }) } - useSyncConfigStore().pushSyncConfig() + useServerSideStorageStore().pushServerSideStorage() }, }, computed: { @@ -47,7 +47,7 @@ const NavigationEntry = { ...mapState({ currentUser: (state) => state.users.currentUser, }), - ...mapPiniaState(useSyncConfigStore, { + ...mapPiniaState(useServerSideStorageStore, { pinnedItems: (store) => new Set(store.prefsStorage.collections.pinnedNavItems), }), diff --git a/src/components/navigation/navigation_pins.js b/src/components/navigation/navigation_pins.js index 85f6fafee..698bf5d59 100644 --- a/src/components/navigation/navigation_pins.js +++ b/src/components/navigation/navigation_pins.js @@ -18,7 +18,7 @@ import { useBookmarkFoldersStore } from 'src/stores/bookmark_folders' import { useInstanceStore } from 'src/stores/instance.js' import { useInstanceCapabilitiesStore } from 'src/stores/instance_capabilities.js' import { useListsStore } from 'src/stores/lists' -import { useSyncConfigStore } from 'src/stores/sync_config.js' +import { useServerSideStorageStore } from 'src/stores/serverSideStorage' import { library } from '@fortawesome/fontawesome-svg-core' import { @@ -70,7 +70,7 @@ const NavPanel = { ...mapPiniaState(useBookmarkFoldersStore, { bookmarks: getBookmarkFolderEntries, }), - ...mapPiniaState(useSyncConfigStore, { + ...mapPiniaState(useServerSideStorageStore, { pinnedItems: (store) => new Set(store.prefsStorage.collections.pinnedNavItems), }), diff --git a/src/components/notification/notification.js b/src/components/notification/notification.js index f3f5b76da..16084dee4 100644 --- a/src/components/notification/notification.js +++ b/src/components/notification/notification.js @@ -17,7 +17,6 @@ import UserLink from '../user_link/user_link.vue' import UserPopover from '../user_popover/user_popover.vue' import { useInstanceStore } from 'src/stores/instance.js' -import { useSyncConfigStore } from 'src/stores/sync_config.js' import generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator' @@ -182,7 +181,7 @@ const Notification = { return highlightClass(this.notification.from_profile) }, userStyle() { - const highlight = useSyncConfigStore().mergedConfig.highlight + const highlight = this.$store.getters.mergedConfig.highlight const user = this.notification.from_profile return highlightStyle(highlight[user.screen_name]) }, @@ -210,7 +209,7 @@ const Notification = { return isStatusNotification(this.notification.type) }, mergedConfig() { - return useSyncConfigStore().mergedConfig + return this.$store.getters.mergedConfig }, shouldConfirmApprove() { return this.mergedConfig.modalOnApproveFollow diff --git a/src/components/notifications/notification_filters.vue b/src/components/notifications/notification_filters.vue index 5508e03ac..7be8eb76b 100644 --- a/src/components/notifications/notification_filters.vue +++ b/src/components/notifications/notification_filters.vue @@ -108,8 +108,6 @@ diff --git a/src/components/timeline/timeline.js b/src/components/timeline/timeline.js index 4a27c468c..4616a4111 100644 --- a/src/components/timeline/timeline.js +++ b/src/components/timeline/timeline.js @@ -9,7 +9,6 @@ import Status from '../status/status.vue' import TimelineMenu from '../timeline_menu/timeline_menu.vue' import { useInterfaceStore } from 'src/stores/interface.js' -import { useSyncConfigStore } from 'src/stores/sync_config.js' import timelineFetcher from 'src/services/timeline_fetcher/timeline_fetcher.service.js' @@ -126,7 +125,7 @@ const Timeline = { return this.timeline.visibleStatuses.slice(min, max).map((_) => _.id) }, virtualScrollingEnabled() { - return useSyncConfigStore().mergedConfig.virtualScrolling + return this.$store.getters.mergedConfig.virtualScrolling }, ...mapState(useInterfaceStore, { mobileLayout: (store) => store.layoutType === 'mobile', @@ -314,7 +313,7 @@ const Timeline = { }, watch: { newStatusCount(count) { - if (!useSyncConfigStore().mergedConfig.streaming) { + if (!this.$store.getters.mergedConfig.streaming) { return } if (count > 0) { @@ -324,9 +323,7 @@ const Timeline = { if ( top < 15 && !this.paused && - !( - this.unfocused && useSyncConfigStore().mergedConfig.pauseOnUnfocused - ) + !(this.unfocused && this.$store.getters.mergedConfig.pauseOnUnfocused) ) { this.showNewStatuses() } else { diff --git a/src/components/update_notification/update_notification.js b/src/components/update_notification/update_notification.js index 78aaa79e8..a8bc60676 100644 --- a/src/components/update_notification/update_notification.js +++ b/src/components/update_notification/update_notification.js @@ -1,7 +1,7 @@ import Modal from 'src/components/modal/modal.vue' import { useInstanceStore } from 'src/stores/instance.js' -import { useSyncConfigStore } from 'src/stores/sync_config.js' +import { useServerSideStorageStore } from 'src/stores/serverSideStorage.js' import pleromaTanFoxMask from 'src/assets/pleromatan_apology_fox_mask.png' import pleromaTanMask from 'src/assets/pleromatan_apology_mask.png' @@ -41,9 +41,9 @@ const UpdateNotification = { return ( !useInstanceStore().disableUpdateNotification && this.$store.state.users.currentUser && - useSyncConfigStore().flagStorage.updateCounter < + useServerSideStorageStore().flagStorage.updateCounter < CURRENT_UPDATE_COUNTER && - !useSyncConfigStore().prefsStorage.simple.dontShowUpdateNotifs + !useServerSideStorageStore().prefsStorage.simple.dontShowUpdateNotifs ) }, }, @@ -53,22 +53,22 @@ const UpdateNotification = { }, neverShowAgain() { this.toggleShow() - useSyncConfigStore().setFlag({ + useServerSideStorageStore().setFlag({ flag: 'updateCounter', value: CURRENT_UPDATE_COUNTER, }) - useSyncConfigStore().setPreference({ + useServerSideStorageStore().setPreference({ path: 'simple.dontShowUpdateNotifs', value: true, }) - useSyncConfigStore().pushSyncConfig() + useServerSideStorageStore().pushServerSideStorage() }, dismiss() { - useSyncConfigStore().setFlag({ + useServerSideStorageStore().setFlag({ flag: 'updateCounter', value: CURRENT_UPDATE_COUNTER, }) - useSyncConfigStore().pushSyncConfig() + useServerSideStorageStore().pushServerSideStorage() }, }, mounted() { diff --git a/src/components/user_card/user_card.js b/src/components/user_card/user_card.js index b94a9ab9a..0df27e6cb 100644 --- a/src/components/user_card/user_card.js +++ b/src/components/user_card/user_card.js @@ -27,7 +27,6 @@ import { useEmojiStore } from 'src/stores/emoji.js' import { useInstanceStore } from 'src/stores/instance.js' import { useInstanceCapabilitiesStore } from 'src/stores/instance_capabilities.js' import { usePostStatusStore } from 'src/stores/post_status' -import { useSyncConfigStore } from 'src/stores/sync_config.js' import { propsToNative } from 'src/services/attributes_helper/attributes_helper.service.js' import localeService from 'src/services/locale/locale.service.js' @@ -224,12 +223,12 @@ export default { userHighlightType: { get() { const data = - useSyncConfigStore().mergedConfig.highlight[this.user.screen_name] + this.$store.getters.mergedConfig.highlight[this.user.screen_name] return (data && data.type) || 'disabled' }, set(type) { const data = - useSyncConfigStore().mergedConfig.highlight[this.user.screen_name] + this.$store.getters.mergedConfig.highlight[this.user.screen_name] if (type !== 'disabled') { this.$store.dispatch('setHighlight', { user: this.user.screen_name, @@ -248,7 +247,7 @@ export default { userHighlightColor: { get() { const data = - useSyncConfigStore().mergedConfig.highlight[this.user.screen_name] + this.$store.getters.mergedConfig.highlight[this.user.screen_name] return data && data.color }, set(color) { diff --git a/src/components/user_card/user_card.vue b/src/components/user_card/user_card.vue index 111b6b999..66529f59b 100644 --- a/src/components/user_card/user_card.vue +++ b/src/components/user_card/user_card.vue @@ -293,7 +293,7 @@