aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShpuld Shpuldson <shp@cock.li>2020-09-02 21:01:31 +0300
committerShpuld Shpuldson <shp@cock.li>2020-09-02 21:01:31 +0300
commit1b6eee049700f6fbb0c2e43877ead3ef4cf3041b (patch)
treecf2d12e16c75c5fa3de1ab51a4120405f9fbe40f
parent2d914c331eea5f5b9036e10ef3d937628891b9e1 (diff)
change chats to use custom makeFetcher
-rw-r--r--src/components/chat/chat.js5
-rw-r--r--src/modules/chats.js11
-rw-r--r--src/services/fetcher/fetcher.js3
-rw-r--r--src/services/notifications_fetcher/notifications_fetcher.service.js2
4 files changed, 10 insertions, 11 deletions
diff --git a/src/components/chat/chat.js b/src/components/chat/chat.js
index 9c4e5b05..2062643d 100644
--- a/src/components/chat/chat.js
+++ b/src/components/chat/chat.js
@@ -5,6 +5,7 @@ import ChatMessage from '../chat_message/chat_message.vue'
import PostStatusForm from '../post_status_form/post_status_form.vue'
import ChatTitle from '../chat_title/chat_title.vue'
import chatService from '../../services/chat_service/chat_service.js'
+import { makeFetcher } from '../../services/fetcher/fetcher.js'
import { getScrollPosition, getNewTopPosition, isBottomedOut, scrollableContainerHeight } from './chat_layout_utils.js'
const BOTTOMED_OUT_OFFSET = 10
@@ -246,7 +247,7 @@ const Chat = {
const fetchOlderMessages = !!maxId
const sinceId = fetchLatest && chatMessageService.lastMessage && chatMessageService.lastMessage.id
- this.backendInteractor.chatMessages({ id: chatId, maxId, sinceId })
+ return this.backendInteractor.chatMessages({ id: chatId, maxId, sinceId })
.then((messages) => {
// Clear the current chat in case we're recovering from a ws connection loss.
if (isFirstFetch) {
@@ -287,7 +288,7 @@ const Chat = {
},
doStartFetching () {
this.$store.dispatch('startFetchingCurrentChat', {
- fetcher: () => setInterval(() => this.fetchChat({ fetchLatest: true }), 5000)
+ fetcher: () => makeFetcher(() => this.fetchChat({ fetchLatest: true }), 5000)
})
this.fetchChat({ isFirstFetch: true })
},
diff --git a/src/modules/chats.js b/src/modules/chats.js
index c7609018..45e4bdcc 100644
--- a/src/modules/chats.js
+++ b/src/modules/chats.js
@@ -3,6 +3,7 @@ import { find, omitBy, orderBy, sumBy } from 'lodash'
import chatService from '../services/chat_service/chat_service.js'
import { parseChat, parseChatMessage } from '../services/entity_normalizer/entity_normalizer.service.js'
import { maybeShowChatNotification } from '../services/chat_utils/chat_utils.js'
+import { makeFetcher } from '../services/fetcher/fetcher.js'
const emptyChatList = () => ({
data: [],
@@ -42,12 +43,10 @@ const chats = {
actions: {
// Chat list
startFetchingChats ({ dispatch, commit }) {
- const fetcher = () => {
- dispatch('fetchChats', { latest: true })
- }
+ const fetcher = () => dispatch('fetchChats', { latest: true })
fetcher()
commit('setChatListFetcher', {
- fetcher: () => setInterval(() => { fetcher() }, 5000)
+ fetcher: () => makeFetcher(fetcher, 5000)
})
},
stopFetchingChats ({ commit }) {
@@ -113,14 +112,14 @@ const chats = {
setChatListFetcher (state, { commit, fetcher }) {
const prevFetcher = state.chatListFetcher
if (prevFetcher) {
- clearInterval(prevFetcher)
+ prevFetcher()
}
state.chatListFetcher = fetcher && fetcher()
},
setCurrentChatFetcher (state, { fetcher }) {
const prevFetcher = state.fetcher
if (prevFetcher) {
- clearInterval(prevFetcher)
+ prevFetcher()
}
state.fetcher = fetcher && fetcher()
},
diff --git a/src/services/fetcher/fetcher.js b/src/services/fetcher/fetcher.js
index 1d9239cc..95b8c9d3 100644
--- a/src/services/fetcher/fetcher.js
+++ b/src/services/fetcher/fetcher.js
@@ -6,7 +6,6 @@ export const makeFetcher = (call, interval) => {
func = () => {
call().finally(() => {
- console.log('callbacks')
if (stopped) return
timeout = window.setTimeout(func, interval)
})
@@ -14,7 +13,7 @@ export const makeFetcher = (call, interval) => {
const stopFetcher = () => {
stopped = true
- window.cancelTimeout(timeout)
+ window.clearTimeout(timeout)
}
func()
diff --git a/src/services/notifications_fetcher/notifications_fetcher.service.js b/src/services/notifications_fetcher/notifications_fetcher.service.js
index 2a3a17be..c69d5b17 100644
--- a/src/services/notifications_fetcher/notifications_fetcher.service.js
+++ b/src/services/notifications_fetcher/notifications_fetcher.service.js
@@ -1,5 +1,5 @@
import apiService from '../api/api.service.js'
-import makeFetcher from '../fetcher/fetcher.js'
+import { makeFetcher } from '../fetcher/fetcher.js'
const update = ({ store, notifications, older }) => {
store.dispatch('setNotificationsError', { value: false })