From 832bd3cdd27d5ca10df6f67a51ac84c8cfa9c05d Mon Sep 17 00:00:00 2001 From: Roger Braun Date: Thu, 16 Feb 2017 11:17:47 +0100 Subject: Fetch Public and TWKN timelines when viewed. --- src/modules/api.js | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'src/modules/api.js') diff --git a/src/modules/api.js b/src/modules/api.js index 4000dc60..a32adfde 100644 --- a/src/modules/api.js +++ b/src/modules/api.js @@ -2,11 +2,32 @@ import backendInteractorService from '../services/backend_interactor_service/bac const api = { state: { - backendInteractor: backendInteractorService() + backendInteractor: backendInteractorService(), + fetchers: {} }, mutations: { setBackendInteractor (state, backendInteractor) { state.backendInteractor = backendInteractor + }, + addFetcher (state, {timeline, fetcher}) { + state.fetchers[timeline] = fetcher + }, + removeFetcher (state, {timeline}) { + delete state.fetchers[timeline] + } + }, + actions: { + startFetching (store, timeline) { + // Don't start fetching if we already are. + if (!store.state.fetchers[timeline]) { + const fetcher = store.state.backendInteractor.startFetching({timeline, store}) + store.commit('addFetcher', {timeline, fetcher}) + } + }, + stopFetching (store, timeline) { + const fetcher = store.state.fetchers[timeline] + window.clearInterval(fetcher) + store.commit('removeFetcher', {timeline}) } } } -- cgit v1.2.3-70-g09d2