diff --git a/frontend/src/App.vue b/frontend/src/App.vue index ea878f2937..8bcbec0dae 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -104,7 +104,7 @@ export default { ...mapState(useUxDrawersStore, ['hiddenLeftDrawer']), ...mapState(useAccountAuthStore, ['user']), ...mapState(useUxLoadingStore, ['appLoader', 'offline']), - ...mapVuexState('account', ['team', 'settings']), + ...mapVuexState('account', ['settings']), loginRequired () { return this.$route.meta.requiresLogin !== false }, diff --git a/frontend/src/components/DevicesBrowser.vue b/frontend/src/components/DevicesBrowser.vue index bdf5df82d6..4b96ce4e39 100644 --- a/frontend/src/components/DevicesBrowser.vue +++ b/frontend/src/components/DevicesBrowser.vue @@ -348,7 +348,7 @@ import { CogIcon, PlusSmIcon } from '@heroicons/vue/solid' import { mapActions, mapState } from 'pinia' import { markRaw } from 'vue' -import { mapGetters, mapState as mapVuexState } from 'vuex' +import { mapGetters } from 'vuex' import deviceApi from '../api/devices.js' import teamApi from '../api/team.js' @@ -386,6 +386,7 @@ import DevicesStatusBar from './charts/DeviceStatusBar.vue' import AddDeviceToGroupDialog from './dialogs/device-group-management/AddDeviceToGroupDialog.vue' import RemoveDeviceFromGroupDialog from './dialogs/device-group-management/RemoveDeviceFromGroupDialog.vue' +import { useContextStore } from '@/stores/context.js' import { useUxDialogStore } from '@/stores/ux-dialog.js' import { useUxToursStore } from '@/stores/ux-tours.js' @@ -461,7 +462,7 @@ export default { } }, computed: { - ...mapVuexState('account', ['team', 'teamMembership']), + ...mapState(useContextStore, ['team']), ...mapGetters('account', ['featuresCheck']), ...mapState(useUxDialogStore, ['dialog']), ...mapState(useUxToursStore, ['tours']), @@ -615,7 +616,7 @@ export default { if (this.deviceCountDeltaSincePageLoad !== 0) { // Trigger a refresh of team info to resync following device // changes - await this.$store.dispatch('account/refreshTeam') + await useContextStore().refreshTeam() } }, methods: { diff --git a/frontend/src/components/NotificationsButton.vue b/frontend/src/components/NotificationsButton.vue index fdc457111e..7fda56ca7e 100644 --- a/frontend/src/components/NotificationsButton.vue +++ b/frontend/src/components/NotificationsButton.vue @@ -11,10 +11,10 @@ import { MailIcon } from '@heroicons/vue/outline' import { mapActions, mapState } from 'pinia' import { markRaw } from 'vue' -import { mapGetters } from 'vuex' import NotificationsDrawer from './drawers/notifications/NotificationsDrawer.vue' +import { useAccountStore } from '@/stores/account.js' import { useUxDrawersStore } from '@/stores/ux-drawers.js' export default { @@ -22,8 +22,7 @@ export default { components: { MailIcon }, computed: { ...mapState(useUxDrawersStore, ['rightDrawer']), - ...mapGetters('account', ['hasNotifications']), - ...mapGetters('account', ['unreadNotificationsCount']), + ...mapState(useAccountStore, ['hasNotifications', 'unreadNotificationsCount']), notificationsCount: function () { // Return null if count = 0 so we don't show a 0 in the pill if (!this.unreadNotificationsCount) { diff --git a/frontend/src/components/PageHeader.vue b/frontend/src/components/PageHeader.vue index 8ada94fa4d..189c73a0e4 100644 --- a/frontend/src/components/PageHeader.vue +++ b/frontend/src/components/PageHeader.vue @@ -104,7 +104,7 @@ import { AcademicCapIcon, AdjustmentsIcon, CogIcon, CursorClickIcon, LogoutIcon, MenuIcon, PlusIcon, QuestionMarkCircleIcon, XIcon } from '@heroicons/vue/solid' import { mapActions, mapState } from 'pinia' import { ref } from 'vue' -import { mapGetters, mapState as mapVuexState } from 'vuex' +import { mapGetters } from 'vuex' import usePermissions from '../composables/Permissions.js' @@ -120,6 +120,8 @@ import TeamSelection from './TeamSelection.vue' import GlobalSearch from './global-search/GlobalSearch.vue' import { useAccountAuthStore } from '@/stores/account-auth.js' +import { useAccountStore } from '@/stores/account.js' +import { useContextStore } from '@/stores/context.js' import { useUxDrawersStore } from '@/stores/ux-drawers.js' import { useUxToursStore } from '@/stores/ux-tours.js' @@ -132,8 +134,9 @@ export default { }, ...mapState(useUxDrawersStore, ['leftDrawer', 'hiddenLeftDrawer']), ...mapState(useAccountAuthStore, ['user']), - ...mapVuexState('account', ['team', 'teams']), - ...mapGetters('account', ['notifications', 'hasAvailableTeams', 'defaultUserTeam', 'canCreateTeam', 'isTrialAccount', 'featuresCheck']), + ...mapState(useContextStore, ['team']), + ...mapState(useAccountStore, ['teams', 'notifications', 'hasAvailableTeams', 'defaultUserTeam']), + ...mapGetters('account', ['canCreateTeam', 'featuresCheck']), navigationOptions () { return [ { diff --git a/frontend/src/components/TeamSelection.vue b/frontend/src/components/TeamSelection.vue index 45b1f038b3..2b7159e97b 100644 --- a/frontend/src/components/TeamSelection.vue +++ b/frontend/src/components/TeamSelection.vue @@ -42,12 +42,16 @@ import { ListboxOption } from '@headlessui/vue' import { PlusIcon, UserAddIcon } from '@heroicons/vue/solid' -import { mapGetters, mapState } from 'vuex' +import { mapState } from 'pinia' +import { mapGetters, mapState as mapVuexState } from 'vuex' import usePermissions from '../composables/Permissions.js' import NavItem from './NavItem.vue' +import { useAccountStore } from '@/stores/account.js' +import { useContextStore } from '@/stores/context.js' + export default { name: 'FFTeamSelection', emits: ['option-selected'], @@ -61,8 +65,10 @@ export default { return { PlusIcon, UserAddIcon, hasPermission } }, computed: { - ...mapState('account', ['team', 'teams', 'settings']), - ...mapGetters('account', ['hasAvailableTeams', 'canCreateTeam']), + ...mapState(useContextStore, ['team']), + ...mapState(useAccountStore, ['teams', 'hasAvailableTeams']), + ...mapVuexState('account', ['settings']), + ...mapGetters('account', ['canCreateTeam']), teamOptions () { return [ ...this.teams.map(team => { @@ -101,7 +107,7 @@ export default { methods: { selectTeam (team) { if (team) { - this.$store.dispatch('account/setTeam', team.slug) + useAccountStore().setTeam(team.slug) .then(() => this.$router.push({ name: 'Team', params: { diff --git a/frontend/src/components/TeamTypeTile.vue b/frontend/src/components/TeamTypeTile.vue index 3bdd13a089..f3ac8fdf42 100644 --- a/frontend/src/components/TeamTypeTile.vue +++ b/frontend/src/components/TeamTypeTile.vue @@ -31,11 +31,11 @@ diff --git a/frontend/src/components/banners/TeamTrial.vue b/frontend/src/components/banners/TeamTrial.vue index 60423e5c60..84fcfaa573 100644 --- a/frontend/src/components/banners/TeamTrial.vue +++ b/frontend/src/components/banners/TeamTrial.vue @@ -38,10 +38,12 @@ diff --git a/frontend/src/pages/instance/DuplicateInstance.vue b/frontend/src/pages/instance/DuplicateInstance.vue index c9fd2bf388..50fc08f81d 100644 --- a/frontend/src/pages/instance/DuplicateInstance.vue +++ b/frontend/src/pages/instance/DuplicateInstance.vue @@ -54,11 +54,14 @@