From 21f1637e437398ec56b6078cf28b58bd4a0299ba Mon Sep 17 00:00:00 2001 From: Ariadne Conill Date: Mon, 11 Nov 2019 14:14:44 -0600 Subject: nav panel: refactor to use vuex mapState --- src/components/nav_panel/nav_panel.js | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) (limited to 'src/components/nav_panel/nav_panel.js') diff --git a/src/components/nav_panel/nav_panel.js b/src/components/nav_panel/nav_panel.js index aa3f7605..bfcab62e 100644 --- a/src/components/nav_panel/nav_panel.js +++ b/src/components/nav_panel/nav_panel.js @@ -1,4 +1,5 @@ import followRequestFetcher from '../../services/follow_request_fetcher/follow_request_fetcher.service' +import { mapState } from 'vuex' const NavPanel = { created () { @@ -9,17 +10,11 @@ const NavPanel = { followRequestFetcher.startFetching({ store, credentials }) } }, - computed: { - currentUser () { - return this.$store.state.users.currentUser - }, - chat () { - return this.$store.state.chat.channel - }, - followRequestCount () { - return this.$store.state.api.followRequests.length - } - } + computed: mapState({ + currentUser: state => state.users.currentUser, + chat: state => state.chat.channel, + followRequestCount: state => state.api.followRequests.length + }) } export default NavPanel -- cgit v1.2.3-70-g09d2 From 1f9674350cdf7455fe5540d377eb327edf1336ce Mon Sep 17 00:00:00 2001 From: Ariadne Conill Date: Mon, 11 Nov 2019 14:18:36 -0600 Subject: nav panel: disable TWKN if federation disabled, disable Public and TWKN if privateMode is enabled --- src/components/nav_panel/nav_panel.js | 4 +++- src/components/nav_panel/nav_panel.vue | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'src/components/nav_panel/nav_panel.js') diff --git a/src/components/nav_panel/nav_panel.js b/src/components/nav_panel/nav_panel.js index bfcab62e..a6426d13 100644 --- a/src/components/nav_panel/nav_panel.js +++ b/src/components/nav_panel/nav_panel.js @@ -13,7 +13,9 @@ const NavPanel = { computed: mapState({ currentUser: state => state.users.currentUser, chat: state => state.chat.channel, - followRequestCount: state => state.api.followRequests.length + followRequestCount: state => state.api.followRequests.length, + privateMode: state => state.instance.private, + federating: state => state.instance.federationPolicy.federating || true }) } diff --git a/src/components/nav_panel/nav_panel.vue b/src/components/nav_panel/nav_panel.vue index 28589bb1..d85c28bd 100644 --- a/src/components/nav_panel/nav_panel.vue +++ b/src/components/nav_panel/nav_panel.vue @@ -28,12 +28,12 @@ -
  • +
  • {{ $t("nav.public_tl") }}
  • -
  • +
  • {{ $t("nav.twkn") }} -- cgit v1.2.3-70-g09d2 From 0995658757b89eeb38b78e997bec2d85b96296af Mon Sep 17 00:00:00 2001 From: kPherox Date: Tue, 19 Nov 2019 14:07:15 +0000 Subject: backend interactor service: implement startFetchingFollowRequest backend interactor service: remove unused fetchFollowRequests --- src/components/nav_panel/nav_panel.js | 7 +------ src/components/side_drawer/side_drawer.js | 4 ++++ src/modules/api.js | 7 +++++++ src/modules/users.js | 1 + .../backend_interactor_service/backend_interactor_service.js | 8 ++++++-- 5 files changed, 19 insertions(+), 8 deletions(-) (limited to 'src/components/nav_panel/nav_panel.js') diff --git a/src/components/nav_panel/nav_panel.js b/src/components/nav_panel/nav_panel.js index aa3f7605..7f783acb 100644 --- a/src/components/nav_panel/nav_panel.js +++ b/src/components/nav_panel/nav_panel.js @@ -1,12 +1,7 @@ -import followRequestFetcher from '../../services/follow_request_fetcher/follow_request_fetcher.service' - const NavPanel = { created () { if (this.currentUser && this.currentUser.locked) { - const store = this.$store - const credentials = store.state.users.currentUser.credentials - - followRequestFetcher.startFetching({ store, credentials }) + this.$store.dispatch('startFetchingFollowRequest') } }, computed: { diff --git a/src/components/side_drawer/side_drawer.js b/src/components/side_drawer/side_drawer.js index 567d2e5e..0188cf3e 100644 --- a/src/components/side_drawer/side_drawer.js +++ b/src/components/side_drawer/side_drawer.js @@ -10,6 +10,10 @@ const SideDrawer = { }), created () { this.closeGesture = GestureService.swipeGesture(GestureService.DIRECTION_LEFT, this.toggleDrawer) + + if (this.currentUser && this.currentUser.locked) { + this.$store.dispatch('startFetchingFollowRequest') + } }, components: { UserCard }, computed: { diff --git a/src/modules/api.js b/src/modules/api.js index eb6a7980..1293e3c8 100644 --- a/src/modules/api.js +++ b/src/modules/api.js @@ -43,6 +43,13 @@ const api = { const fetcher = store.state.backendInteractor.startFetchingNotifications({ store }) store.commit('addFetcher', { fetcherName: 'notifications', fetcher }) }, + startFetchingFollowRequest (store) { + // Don't start fetching if we already are. + if (store.state.fetchers['followRequest']) return + + const fetcher = store.state.backendInteractor.startFetchingFollowRequest({ store }) + store.commit('addFetcher', { fetcherName: 'followRequest', fetcher }) + }, stopFetching (store, fetcherName) { const fetcher = store.state.fetchers[fetcherName] window.clearInterval(fetcher) diff --git a/src/modules/users.js b/src/modules/users.js index 1c9ff5e8..14b2d8b5 100644 --- a/src/modules/users.js +++ b/src/modules/users.js @@ -434,6 +434,7 @@ const users = { store.dispatch('stopFetching', 'friends') store.commit('setBackendInteractor', backendInteractorService(store.getters.getToken())) store.dispatch('stopFetching', 'notifications') + store.dispatch('stopFetching', 'followRequest') store.commit('clearNotifications') store.commit('resetStatuses') }) diff --git a/src/services/backend_interactor_service/backend_interactor_service.js b/src/services/backend_interactor_service/backend_interactor_service.js index d6617276..c16bd1f1 100644 --- a/src/services/backend_interactor_service/backend_interactor_service.js +++ b/src/services/backend_interactor_service/backend_interactor_service.js @@ -1,6 +1,7 @@ import apiService from '../api/api.service.js' import timelineFetcherService from '../timeline_fetcher/timeline_fetcher.service.js' import notificationsFetcher from '../notifications_fetcher/notifications_fetcher.service.js' +import followRequestFetcher from '../../services/follow_request_fetcher/follow_request_fetcher.service' const backendInteractorService = credentials => { const fetchStatus = ({ id }) => { @@ -63,6 +64,10 @@ const backendInteractorService = credentials => { return notificationsFetcher.startFetching({ store, credentials }) } + const startFetchingFollowRequest = ({ store }) => { + return followRequestFetcher.startFetching({ store, credentials }) + } + // eslint-disable-next-line camelcase const tagUser = ({ screen_name }, tag) => { return apiService.tagUser({ screen_name, tag, credentials }) @@ -111,7 +116,6 @@ const backendInteractorService = credentials => { const subscribeUser = (id) => apiService.subscribeUser({ credentials, id }) const unsubscribeUser = (id) => apiService.unsubscribeUser({ credentials, id }) const fetchBlocks = () => apiService.fetchBlocks({ credentials }) - const fetchFollowRequests = () => apiService.fetchFollowRequests({ credentials }) const fetchOAuthTokens = () => apiService.fetchOAuthTokens({ credentials }) const revokeOAuthToken = (id) => apiService.revokeOAuthToken({ id, credentials }) const fetchPinnedStatuses = (id) => apiService.fetchPinnedStatuses({ credentials, id }) @@ -168,6 +172,7 @@ const backendInteractorService = credentials => { verifyCredentials: apiService.verifyCredentials, startFetchingTimeline, startFetchingNotifications, + startFetchingFollowRequest, fetchMutes, muteUser, unmuteUser, @@ -203,7 +208,6 @@ const backendInteractorService = credentials => { mfaSetupOTP, mfaConfirmOTP, mfaDisableOTP, - fetchFollowRequests, approveUser, denyUser, vote, -- cgit v1.2.3-70-g09d2 From 3eeb3dc57296cba13e3760a79b635fba5a332be0 Mon Sep 17 00:00:00 2001 From: Mark Felder Date: Thu, 12 Dec 2019 13:37:32 -0600 Subject: Lint --- src/App.vue | 2 +- src/components/nav_panel/nav_panel.js | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) (limited to 'src/components/nav_panel/nav_panel.js') diff --git a/src/App.vue b/src/App.vue index d455e9ed..5f8517d4 100644 --- a/src/App.vue +++ b/src/App.vue @@ -43,8 +43,8 @@ Date: Thu, 12 Dec 2019 13:56:07 -0600 Subject: The value we are looking for is federationPolicy.enabled, not federationPolicy.federating Also the || true fallback does not work and always becomes true --- src/components/nav_panel/nav_panel.js | 2 +- src/components/side_drawer/side_drawer.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src/components/nav_panel/nav_panel.js') diff --git a/src/components/nav_panel/nav_panel.js b/src/components/nav_panel/nav_panel.js index f27727fc..7da9f8c6 100644 --- a/src/components/nav_panel/nav_panel.js +++ b/src/components/nav_panel/nav_panel.js @@ -11,7 +11,7 @@ const NavPanel = { chat: state => state.chat.channel, followRequestCount: state => state.api.followRequests.length, privateMode: state => state.instance.private, - federating: state => state.instance.federationPolicy.federating || true + federating: state => state.instance.federationPolicy.enabled }) } diff --git a/src/components/side_drawer/side_drawer.js b/src/components/side_drawer/side_drawer.js index 22cb1a55..e08f7cbe 100644 --- a/src/components/side_drawer/side_drawer.js +++ b/src/components/side_drawer/side_drawer.js @@ -46,7 +46,7 @@ const SideDrawer = { return this.$store.state.instance.private }, federating () { - return this.$store.state.instance.federationPolicy.federating || true + return this.$store.state.instance.federationPolicy.enabled } }, methods: { -- cgit v1.2.3-70-g09d2 From 8d14036a23adbd13b098abeeef9622471f4a64d3 Mon Sep 17 00:00:00 2001 From: Mark Felder Date: Thu, 12 Dec 2019 15:17:23 -0600 Subject: Add fallback in case BE does not report federating status in nodeinfo --- src/components/nav_panel/nav_panel.js | 2 +- src/components/side_drawer/side_drawer.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src/components/nav_panel/nav_panel.js') diff --git a/src/components/nav_panel/nav_panel.js b/src/components/nav_panel/nav_panel.js index 7da9f8c6..515e47e6 100644 --- a/src/components/nav_panel/nav_panel.js +++ b/src/components/nav_panel/nav_panel.js @@ -11,7 +11,7 @@ const NavPanel = { chat: state => state.chat.channel, followRequestCount: state => state.api.followRequests.length, privateMode: state => state.instance.private, - federating: state => state.instance.federationPolicy.enabled + federating: state => state.instance.federationPolicy.enabled || state.instance.federationPolicy.enabled !== false }) } diff --git a/src/components/side_drawer/side_drawer.js b/src/components/side_drawer/side_drawer.js index e08f7cbe..670d28b4 100644 --- a/src/components/side_drawer/side_drawer.js +++ b/src/components/side_drawer/side_drawer.js @@ -46,7 +46,7 @@ const SideDrawer = { return this.$store.state.instance.private }, federating () { - return this.$store.state.instance.federationPolicy.enabled + return this.$store.state.instance.federationPolicy.enabled || this.$store.state.instance.federationPolicy.enabled !== false } }, methods: { -- cgit v1.2.3-70-g09d2 From d899d06973c7c46e77f9e47f480d6967e83b4adf Mon Sep 17 00:00:00 2001 From: Mark Felder Date: Thu, 12 Dec 2019 15:29:50 -0600 Subject: Use a centralized fallback for missing values and use instance.federating instead of instance.federation.enabled --- src/boot/after_store.js | 6 ++++++ src/components/nav_panel/nav_panel.js | 2 +- src/components/side_drawer/side_drawer.js | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) (limited to 'src/components/nav_panel/nav_panel.js') diff --git a/src/boot/after_store.js b/src/boot/after_store.js index f169d7ba..228a0497 100644 --- a/src/boot/after_store.js +++ b/src/boot/after_store.js @@ -228,6 +228,12 @@ const getNodeInfo = async ({ store }) => { const federation = metadata.federation store.dispatch('setInstanceOption', { name: 'federationPolicy', value: federation }) + store.dispatch('setInstanceOption', { + name: 'federating', + value: typeof federation.enabled === 'undefined' + ? true + : federation.enabled + }) const accounts = metadata.staffAccounts await resolveStaffAccounts({ store, accounts }) diff --git a/src/components/nav_panel/nav_panel.js b/src/components/nav_panel/nav_panel.js index 515e47e6..d9268585 100644 --- a/src/components/nav_panel/nav_panel.js +++ b/src/components/nav_panel/nav_panel.js @@ -11,7 +11,7 @@ const NavPanel = { chat: state => state.chat.channel, followRequestCount: state => state.api.followRequests.length, privateMode: state => state.instance.private, - federating: state => state.instance.federationPolicy.enabled || state.instance.federationPolicy.enabled !== false + federating: state => state.instance.federating }) } diff --git a/src/components/side_drawer/side_drawer.js b/src/components/side_drawer/side_drawer.js index 670d28b4..2534eb8f 100644 --- a/src/components/side_drawer/side_drawer.js +++ b/src/components/side_drawer/side_drawer.js @@ -46,7 +46,7 @@ const SideDrawer = { return this.$store.state.instance.private }, federating () { - return this.$store.state.instance.federationPolicy.enabled || this.$store.state.instance.federationPolicy.enabled !== false + return this.$store.state.instance.federating } }, methods: { -- cgit v1.2.3-70-g09d2 From 8080981fcdaab4efd07c2c3f4ff3e2131f8aa802 Mon Sep 17 00:00:00 2001 From: lain Date: Tue, 21 Jan 2020 16:51:49 +0100 Subject: Fix follower request fetching --- src/components/nav_panel/nav_panel.js | 2 +- src/components/side_drawer/side_drawer.js | 2 +- src/modules/api.js | 1 + src/services/backend_interactor_service/backend_interactor_service.js | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) (limited to 'src/components/nav_panel/nav_panel.js') diff --git a/src/components/nav_panel/nav_panel.js b/src/components/nav_panel/nav_panel.js index d9268585..8f7edb7f 100644 --- a/src/components/nav_panel/nav_panel.js +++ b/src/components/nav_panel/nav_panel.js @@ -3,7 +3,7 @@ import { mapState } from 'vuex' const NavPanel = { created () { if (this.currentUser && this.currentUser.locked) { - this.$store.dispatch('startFetchingFollowRequest') + this.$store.dispatch('startFetchingFollowRequests') } }, computed: mapState({ diff --git a/src/components/side_drawer/side_drawer.js b/src/components/side_drawer/side_drawer.js index 2534eb8f..2181ecc7 100644 --- a/src/components/side_drawer/side_drawer.js +++ b/src/components/side_drawer/side_drawer.js @@ -12,7 +12,7 @@ const SideDrawer = { this.closeGesture = GestureService.swipeGesture(GestureService.DIRECTION_LEFT, this.toggleDrawer) if (this.currentUser && this.currentUser.locked) { - this.$store.dispatch('startFetchingFollowRequest') + this.$store.dispatch('startFetchingFollowRequests') } }, components: { UserCard }, diff --git a/src/modules/api.js b/src/modules/api.js index 9c296275..748570e5 100644 --- a/src/modules/api.js +++ b/src/modules/api.js @@ -146,6 +146,7 @@ const api = { startFetchingFollowRequests (store) { if (store.state.fetchers['followRequests']) return const fetcher = store.state.backendInteractor.startFetchingFollowRequests({ store }) + store.commit('addFetcher', { fetcherName: 'followRequests', fetcher }) }, stopFetchingFollowRequests (store) { diff --git a/src/services/backend_interactor_service/backend_interactor_service.js b/src/services/backend_interactor_service/backend_interactor_service.js index b7372ed0..e1c32860 100644 --- a/src/services/backend_interactor_service/backend_interactor_service.js +++ b/src/services/backend_interactor_service/backend_interactor_service.js @@ -16,7 +16,7 @@ const backendInteractorService = credentials => ({ return notificationsFetcher.fetchAndUpdate({ store, credentials }) }, - startFetchingFollowRequest ({ store }) { + startFetchingFollowRequests ({ store }) { return followRequestFetcher.startFetching({ store, credentials }) }, -- cgit v1.2.3-70-g09d2