From 573a9805129d9d43214a65a97e7a20a30aeea561 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Thu, 29 Jan 2026 15:11:47 +0200 Subject: [PATCH] separation --- src/boot/after_store.js | 4 ++-- src/boot/routes.js | 7 +++++-- src/components/about/about.js | 6 +++--- src/components/attachment/attachment.js | 7 +++++-- src/components/desktop_nav/desktop_nav.js | 4 ++-- .../instance_specific_panel.js | 2 +- .../settings_modal/tabs/appearance_tab.js | 20 ++++++++++++++----- .../settings_modal/tabs/filtering_tab.js | 2 +- src/components/side_drawer/side_drawer.js | 7 ++++--- .../terms_of_service_panel.js | 14 ++++++------- src/components/user_card/user_card.js | 10 ++++++++-- src/modules/default_config_state.js | 4 ++++ 12 files changed, 56 insertions(+), 31 deletions(-) diff --git a/src/boot/after_store.js b/src/boot/after_store.js index 9724659ab..5878729f3 100644 --- a/src/boot/after_store.js +++ b/src/boot/after_store.js @@ -183,7 +183,7 @@ const getTOS = async ({ store }) => { const res = await window.fetch('/static/terms-of-service.html') if (res.ok) { const html = await res.text() - useInstanceStore().set({ name: 'tos', value: html }) + useInstanceStore().set({ name: 'instanceIdentity.tos', value: html }) } else { throw res } @@ -198,7 +198,7 @@ const getInstancePanel = async ({ store }) => { if (res.ok) { const html = await res.text() useInstanceStore().set({ - name: 'instanceSpecificPanelContent', + name: 'instanceIdentity.instanceSpecificPanelContent', value: html, }) } else { diff --git a/src/boot/routes.js b/src/boot/routes.js index e718a04ab..1ddd8d459 100644 --- a/src/boot/routes.js +++ b/src/boot/routes.js @@ -38,7 +38,9 @@ export default (store) => { if (store.state.users.currentUser) { next() } else { - next(useInstanceStore().instanceIdentity.redirectRootNoLogin || '/main/all') + next( + useInstanceStore().instanceIdentity.redirectRootNoLogin || '/main/all', + ) } } @@ -50,7 +52,8 @@ export default (store) => { return ( (store.state.users.currentUser ? useInstanceStore().instanceIdentity.redirectRootLogin - : useInstanceStore().instanceIdentity.redirectRootNoLogin) || '/main/all' + : useInstanceStore().instanceIdentity.redirectRootNoLogin) || + '/main/all' ) }, }, diff --git a/src/components/about/about.js b/src/components/about/about.js index 79445584b..1d8190718 100644 --- a/src/components/about/about.js +++ b/src/components/about/about.js @@ -15,13 +15,13 @@ const About = { }, computed: { showFeaturesPanel() { - return useInstanceStore().showFeaturesPanel + return useInstanceStore().instanceIdentity.showFeaturesPanel }, showInstanceSpecificPanel() { return ( - useInstanceStore().showInstanceSpecificPanel && + useInstanceStore().instanceIdentity.showInstanceSpecificPanel && !this.$store.getters.mergedConfig.hideISP && - useInstanceStore().instanceSpecificPanelContent + useInstanceStore().instanceIdentity.instanceSpecificPanelContent ) }, }, diff --git a/src/components/attachment/attachment.js b/src/components/attachment/attachment.js index d20db63ca..2a847632f 100644 --- a/src/components/attachment/attachment.js +++ b/src/components/attachment/attachment.js @@ -54,7 +54,8 @@ const Attachment = { data() { return { localDescription: this.description || this.attachment.description, - nsfwImage: useInstanceStore().nsfwCensorImage || nsfwImage, + nsfwImage: + useInstanceStore().instanceIdentity.nsfwCensorImage || nsfwImage, hideNsfwLocal: this.$store.getters.mergedConfig.hideNsfw, preloadImage: this.$store.getters.mergedConfig.preloadImage, loading: false, @@ -105,7 +106,9 @@ const Attachment = { return 'file' }, referrerpolicy() { - return useInstanceStore().mediaProxyAvailable ? '' : 'no-referrer' + return useInstanceStore().featureSet.mediaProxyAvailable + ? '' + : 'no-referrer' }, type() { return fileTypeService.fileType(this.attachment.mimetype) diff --git a/src/components/desktop_nav/desktop_nav.js b/src/components/desktop_nav/desktop_nav.js index 385ed0c14..48fd4fad1 100644 --- a/src/components/desktop_nav/desktop_nav.js +++ b/src/components/desktop_nav/desktop_nav.js @@ -1,5 +1,5 @@ import SearchBar from 'components/search_bar/search_bar.vue' -import { mapState, mapActions } from 'pinia' +import { mapActions, mapState } from 'pinia' import { useInstanceStore } from 'src/stores/instance.js' import { useInterfaceStore } from 'src/stores/interface' @@ -123,6 +123,6 @@ export default { onSearchBarToggled(hidden) { this.searchBarHidden = hidden }, - ...mapActions(useInterfaceStore, ['openSettingsModal']) + ...mapActions(useInterfaceStore, ['openSettingsModal']), }, } diff --git a/src/components/instance_specific_panel/instance_specific_panel.js b/src/components/instance_specific_panel/instance_specific_panel.js index c9e2e280f..1ab0eec61 100644 --- a/src/components/instance_specific_panel/instance_specific_panel.js +++ b/src/components/instance_specific_panel/instance_specific_panel.js @@ -3,7 +3,7 @@ import { useInstanceStore } from 'src/stores/instance.js' const InstanceSpecificPanel = { computed: { instanceSpecificPanelContent() { - return useInstanceStore().instanceSpecificPanelContent + return useInstanceStore().instanceIdentity.instanceSpecificPanelContent }, }, } diff --git a/src/components/settings_modal/tabs/appearance_tab.js b/src/components/settings_modal/tabs/appearance_tab.js index 73151b70a..d7a157dab 100644 --- a/src/components/settings_modal/tabs/appearance_tab.js +++ b/src/components/settings_modal/tabs/appearance_tab.js @@ -274,11 +274,11 @@ const AppearanceTab = { return !window.IntersectionObserver }, instanceWallpaper() { - useInstanceStore().background + useInstanceStore().instanceIdentity.background }, instanceWallpaperUsed() { return ( - useInstanceStore().background && + useInstanceStore().instanceIdentity.background && !this.$store.state.users.currentUser.background_image ) }, @@ -333,13 +333,23 @@ const AppearanceTab = { } }, isThemeActive(key) { - return key === (this.mergedConfig.theme || useInstanceStore().theme) + return ( + key === + (this.mergedConfig.theme || useInstanceStore().instanceIdentity.theme) + ) }, isStyleActive(key) { - return key === (this.mergedConfig.style || useInstanceStore().style) + return ( + key === + (this.mergedConfig.style || useInstanceStore().instanceIdentity.style) + ) }, isPaletteActive(key) { - return key === (this.mergedConfig.palette || useInstanceStore().palette) + return ( + key === + (this.mergedConfig.palette || + useInstanceStore().instanceIdentity.palette) + ) }, ...mapActions(useInterfaceStore, ['setStyle', 'setTheme']), setPalette(name, data) { diff --git a/src/components/settings_modal/tabs/filtering_tab.js b/src/components/settings_modal/tabs/filtering_tab.js index 324dbe322..e990e8f3f 100644 --- a/src/components/settings_modal/tabs/filtering_tab.js +++ b/src/components/settings_modal/tabs/filtering_tab.js @@ -91,7 +91,7 @@ const FilteringTab = { }, computed: { instanceSpecificPanelPresent() { - return useInstanceStore().showInstanceSpecificPanel + return useInstanceStore().instanceIdentity.showInstanceSpecificPanel }, ...SharedComputedObject(), ...mapState(useServerSideStorageStore, { diff --git a/src/components/side_drawer/side_drawer.js b/src/components/side_drawer/side_drawer.js index e3428b72f..8aa22df90 100644 --- a/src/components/side_drawer/side_drawer.js +++ b/src/components/side_drawer/side_drawer.js @@ -1,4 +1,4 @@ -import { mapState, mapActions } from 'pinia' +import { mapActions, mapState } from 'pinia' import { mapGetters } from 'vuex' import { USERNAME_ROUTES } from 'src/components/navigation/navigation.js' @@ -105,7 +105,8 @@ const SideDrawer = { logo: (store) => store.instanceIdentity.logo, sitename: (store) => store.instanceIdentity.name, hideSitename: (store) => store.instanceIdentity.hideSitename, - pleromaChatMessagesAvailable: (store) => store.featureSet.pleromaChatMessagesAvailable, + pleromaChatMessagesAvailable: (store) => + store.featureSet.pleromaChatMessagesAvailable, suggestionsEnabled: (store) => store.featureSet.suggestionsEnabled, }), ...mapGetters(['unreadChatCount', 'draftCount']), @@ -124,7 +125,7 @@ const SideDrawer = { touchMove(e) { GestureService.updateSwipe(e, this.closeGesture) }, - ...mapActions(useInterfaceStore, ['openSettingsModal']) + ...mapActions(useInterfaceStore, ['openSettingsModal']), }, } diff --git a/src/components/terms_of_service_panel/terms_of_service_panel.js b/src/components/terms_of_service_panel/terms_of_service_panel.js index 0e6a075ca..64a745455 100644 --- a/src/components/terms_of_service_panel/terms_of_service_panel.js +++ b/src/components/terms_of_service_panel/terms_of_service_panel.js @@ -1,14 +1,12 @@ +import { mapState } from 'pinia' + import { useInstanceStore } from 'src/stores/instance.js' const TermsOfServicePanel = { - computed: { - content() { - return useInstanceStore().tos - }, - embedded() { - return useInstanceStore().embeddedToS - }, - }, + computed: mapState(useInstanceStore, { + content: (store) => store.instanceIdentity.tos, + embedded: (store) => store.instanceIdentity.embeddedToS, + }), } export default TermsOfServicePanel diff --git a/src/components/user_card/user_card.js b/src/components/user_card/user_card.js index b105ddce5..76fba19bc 100644 --- a/src/components/user_card/user_card.js +++ b/src/components/user_card/user_card.js @@ -337,10 +337,16 @@ export default { return this.newBanner === null ? currentUrl : newUrl }, defaultAvatar() { - return useInstanceStore().server + useInstanceStore().defaultAvatar + return ( + useInstanceStore().server + + useInstanceStore().instanceIdentity.defaultAvatar + ) }, defaultBanner() { - return useInstanceStore().server + useInstanceStore().defaultBanner + return ( + useInstanceStore().server + + useInstanceStore().instanceIdentity.defaultBanner + ) }, isDefaultAvatar() { const baseAvatar = useInstanceStore().defaultAvatar diff --git a/src/modules/default_config_state.js b/src/modules/default_config_state.js index 805928bd4..3e39fb1fc 100644 --- a/src/modules/default_config_state.js +++ b/src/modules/default_config_state.js @@ -21,6 +21,10 @@ export const staticOrApiConfigDefault = { nsfwCensorImage: null, showFeaturesPanel: true, showInstanceSpecificPanel: false, + + // Html stuff + instanceSpecificPanelContent: '', + tos: '', } /// This object contains setting entries that makes sense