From 12df5d09ab5a0de1006d1539fe5a7770daabff74 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Mon, 24 Aug 2026 14:52:26 +0300 Subject: [PATCH] logged-out fixes + rename mapPiniaState -> mapState --- src/components/conversation/conversation.js | 12 +++++------ src/components/login_form/login_form.js | 14 ++++++------- src/components/mention_link/mention_link.js | 4 ++-- src/components/nav_panel/nav_panel.js | 20 +++++++++---------- src/components/navigation/navigation_pins.js | 20 +++++++++---------- src/components/notification/notification.js | 3 --- .../helpers/vertical_tab_switcher.jsx | 4 ++-- 7 files changed, 36 insertions(+), 41 deletions(-) diff --git a/src/components/conversation/conversation.js b/src/components/conversation/conversation.js index cc4aecfe3..675d2b4da 100644 --- a/src/components/conversation/conversation.js +++ b/src/components/conversation/conversation.js @@ -1,6 +1,5 @@ import { get, reduce } from 'lodash' -import { mapState as mapPiniaState } from 'pinia' -import { mapState } from 'vuex' +import { mapState } from 'pinia' import ChatMessageList from 'src/components/chat_message_list/chat_message_list.vue' import PostStatusForm from 'src/components/post_status_form/post_status_form.vue' @@ -13,6 +12,7 @@ import { useInterfaceStore } from 'src/stores/interface.js' import { useMergedConfigStore } from 'src/stores/merged_config.js' import { useOAuthStore } from 'src/stores/oauth.js' import { useStatusesStore } from 'src/stores/statuses.js' +import { useStreamingStore } from 'src/stores/streaming.js' import { fetchConversation, fetchStatus } from 'src/api/public.js' import { WSConnectionStatus } from 'src/api/websocket.js' @@ -388,11 +388,11 @@ const conversation = { maybeFocused() { return this.isExpanded ? this.focused : null }, - ...mapPiniaState(useMergedConfigStore, ['mergedConfig']), - ...mapState({ - mastoUserSocketStatus: (state) => state.api.mastoUserSocketStatus, + ...mapState(useMergedConfigStore, ['mergedConfig']), + ...mapState(useStreamingStore, { + mastoUserSocketStatus: (state) => state.state, }), - ...mapPiniaState(useInterfaceStore, { + ...mapState(useInterfaceStore, { mobileLayout: (store) => store.layoutType === 'mobile', }), }, diff --git a/src/components/login_form/login_form.js b/src/components/login_form/login_form.js index 6c2750677..e655e9da9 100644 --- a/src/components/login_form/login_form.js +++ b/src/components/login_form/login_form.js @@ -1,8 +1,8 @@ -import { mapActions, mapState as mapPiniaState } from 'pinia' -import { mapState } from 'vuex' +import { mapActions, mapState } from 'pinia' import { useAuthFlowStore } from 'src/stores/auth_flow.js' import { useInstanceStore } from 'src/stores/instance.js' +import { useUsersStore } from 'src/stores/users.js' import { useOAuthStore } from 'src/stores/oauth.js' import { getLoginUrl, getTokenWithCredentials } from 'src/api/oauth.js' @@ -18,12 +18,10 @@ const LoginForm = { error: false, }), computed: { - ...mapState({ - loggingIn: (state) => state.users.loggingIn, - }), - ...mapPiniaState(useOAuthStore, ['clientId', 'clientSecret']), - ...mapPiniaState(useInstanceStore, ['server', 'registrationOpen']), - ...mapPiniaState(useAuthFlowStore, { + ...mapState(useUsersStore, ['loggingIn']), + ...mapState(useOAuthStore, ['clientId', 'clientSecret']), + ...mapState(useInstanceStore, ['server', 'registrationOpen']), + ...mapState(useAuthFlowStore, { isTokenAuth: (store) => store.requiredToken, isPasswordAuth: (store) => !store.requiredToken, }), diff --git a/src/components/mention_link/mention_link.js b/src/components/mention_link/mention_link.js index 374e62259..01ad0eeb1 100644 --- a/src/components/mention_link/mention_link.js +++ b/src/components/mention_link/mention_link.js @@ -78,8 +78,8 @@ const MentionLink = { return this.url && useUsersStore().findUserByUrl(this.url) }, isYou() { - // FIXME why user !== currentUser??? - return this.user?.id === this.currentUser.id + if (!this.currentUser) return false + return this.user === this.currentUser }, userName() { return this.user && this.userNameFullUi.split('@')[0] diff --git a/src/components/nav_panel/nav_panel.js b/src/components/nav_panel/nav_panel.js index 3e88ea564..c3e760efb 100644 --- a/src/components/nav_panel/nav_panel.js +++ b/src/components/nav_panel/nav_panel.js @@ -1,5 +1,5 @@ -import { mapState as mapPiniaState } from 'pinia' -import { mapState } from 'vuex' +import { mapState } from 'pinia' +import { mapState as mapVuexState } from 'vuex' import BookmarkFoldersMenuContent from 'src/components/bookmark_folders_menu/bookmark_folders_menu_content.vue' import Checkbox from 'src/components/checkbox/checkbox.vue' @@ -111,29 +111,29 @@ const NavPanel = { }, }, computed: { - ...mapPiniaState(useAnnouncementsStore, { + ...mapState(useAnnouncementsStore, { unreadAnnouncementCount: 'unreadAnnouncementCount', supportsAnnouncements: (store) => store.supportsAnnouncements, }), - ...mapPiniaState(useInstanceCapabilitiesStore, [ + ...mapState(useInstanceCapabilitiesStore, [ 'pleromaChatMessagesAvailable', 'pleromaBookmarkFoldersAvailable', 'localBubble', ]), - ...mapPiniaState(useInstanceStore, ['federating']), - ...mapPiniaState(useInstanceStore, { + ...mapState(useInstanceStore, ['federating']), + ...mapState(useInstanceStore, { privateMode: (store) => store.private, }), - ...mapPiniaState(useSyncConfigStore, { + ...mapState(useSyncConfigStore, { collapsed: (store) => store.prefsStorage.simple.collapseNav, pinnedItems: (store) => new Set(store.prefsStorage.collections.pinnedNavItems), }), - ...mapPiniaState(useUsersStore, ['currentUser']), - ...mapState({ + ...mapState(useUsersStore, ['currentUser']), + ...mapVuexState({ followRequestCount: (state) => state.api.followRequests.length, }), - ...mapPiniaState(useChatsStore, ['unreadChatsCount']), + ...mapState(useChatsStore, ['unreadChatsCount']), timelinesItems() { return filterNavigation( Object.entries({ ...TIMELINES }) diff --git a/src/components/navigation/navigation_pins.js b/src/components/navigation/navigation_pins.js index d1be73819..2efa94ee4 100644 --- a/src/components/navigation/navigation_pins.js +++ b/src/components/navigation/navigation_pins.js @@ -1,5 +1,5 @@ -import { mapState as mapPiniaState } from 'pinia' -import { mapState } from 'vuex' +import { mapState } from 'pinia' +import { mapState as mapVuexState } from 'vuex' import { filterNavigation, @@ -59,26 +59,26 @@ const NavPanel = { getters() { return this.$store.getters }, - ...mapPiniaState(useListsStore, { + ...mapState(useListsStore, { lists: getListEntries, }), - ...mapPiniaState(useAnnouncementsStore, { + ...mapState(useAnnouncementsStore, { supportsAnnouncements: (store) => store.supportsAnnouncements, }), - ...mapPiniaState(useBookmarkFoldersStore, { + ...mapState(useBookmarkFoldersStore, { bookmarks: getBookmarkFolderEntries, }), - ...mapPiniaState(useSyncConfigStore, { + ...mapState(useSyncConfigStore, { pinnedItems: (store) => new Set(store.prefsStorage.collections.pinnedNavItems), }), - ...mapPiniaState(useInstanceStore, ['privateMode', 'federating']), - ...mapPiniaState(useInstanceCapabilitiesStore, [ + ...mapState(useInstanceStore, ['privateMode', 'federating']), + ...mapState(useInstanceCapabilitiesStore, [ 'pleromaChatMessagesAvailable', 'localBubble', ]), - ...mapPiniaState(useUsersStore, ['currentUser']), - ...mapState({ + ...mapState(useUsersStore, ['currentUser']), + ...mapVuexState({ followRequestCount: (state) => state.api.followRequests.length, }), pinnedList() { diff --git a/src/components/notification/notification.js b/src/components/notification/notification.js index a589c0cf6..3c82f455c 100644 --- a/src/components/notification/notification.js +++ b/src/components/notification/notification.js @@ -118,9 +118,6 @@ const Notification = { useInstanceStore().restrictedNicknames, ) }, - getUser(notification) { - return this.$store.state.users.usersObject[notification.from_profile.id] - }, interacted() { this.$emit('interacted') }, diff --git a/src/components/settings_modal/helpers/vertical_tab_switcher.jsx b/src/components/settings_modal/helpers/vertical_tab_switcher.jsx index 996939c00..2f3d5e28f 100644 --- a/src/components/settings_modal/helpers/vertical_tab_switcher.jsx +++ b/src/components/settings_modal/helpers/vertical_tab_switcher.jsx @@ -1,6 +1,6 @@ // eslint-disable-next-line no-unused -import { mapState as mapPiniaState } from 'pinia' +import { mapState } from 'pinia' import { Fragment } from 'vue' import { FontAwesomeIcon as FAIcon } from '@fortawesome/vue-fontawesome' @@ -60,7 +60,7 @@ export default { return this.$slots.default().findIndex(isWanted) === this.activeIndex } }, - ...mapPiniaState(useInterfaceStore, { + ...mapState(useInterfaceStore, { mobileLayout: (store) => store.layoutType === 'mobile', }), },