aboutsummaryrefslogtreecommitdiff
path: root/src/modules/api.js
diff options
context:
space:
mode:
authorRoger Braun <roger@rogerbraun.net>2017-02-16 11:17:47 +0100
committerRoger Braun <roger@rogerbraun.net>2017-02-16 11:17:47 +0100
commit832bd3cdd27d5ca10df6f67a51ac84c8cfa9c05d (patch)
treebf1126bf0602c903a5cf187b90b5cd1367a24355 /src/modules/api.js
parent14f07dde5ddeb968b26fed239ebf03ad95aa408d (diff)
Fetch Public and TWKN timelines when viewed.
Diffstat (limited to 'src/modules/api.js')
-rw-r--r--src/modules/api.js23
1 files changed, 22 insertions, 1 deletions
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})
}
}
}