diff --git a/frontend/src/redux/docs/reducer.ts b/frontend/src/redux/docs/reducer.ts index 4a75fb6..3947137 100644 --- a/frontend/src/redux/docs/reducer.ts +++ b/frontend/src/redux/docs/reducer.ts @@ -115,6 +115,8 @@ export const docsReducer: Reducer = ( name: payload.name, dirty: false, }; + const dirtyDocs = Object.values(all).filter(e => e.dirty); + dirty = dirtyDocs.length > 0; } return { ...state, all, dirty }; } diff --git a/frontend/src/redux/docs/sagas.ts b/frontend/src/redux/docs/sagas.ts index 0a8732d..a4ea54a 100644 --- a/frontend/src/redux/docs/sagas.ts +++ b/frontend/src/redux/docs/sagas.ts @@ -33,6 +33,7 @@ import { newDocSuccess, showDocsSpinner, uploadDocsFail, + uploadDocsStart, uploadDocsSuccess, } from "./actions"; @@ -170,6 +171,13 @@ function* docsUploadStart(action: IDocsUploadStartAction) { } } +export function* uploadDocsTimer() { + while (true) { + yield docsUploadStart(uploadDocsStart()); + yield delay(5000); + } +} + export function* docsSaga() { yield all([ takeLatest(DocsTypes.DOCS_FETCH_START, docsFetchStart), diff --git a/frontend/src/redux/store.ts b/frontend/src/redux/store.ts index af5d81c..ef7bff6 100644 --- a/frontend/src/redux/store.ts +++ b/frontend/src/redux/store.ts @@ -6,7 +6,7 @@ import { rootReducer } from "~redux/reducers"; import { setToken } from "./api/utils"; import { authSaga } from "./auth/sagas"; -import { docsSaga } from "./docs/sagas"; +import { docsSaga, uploadDocsTimer } from "./docs/sagas"; import { getUser } from "./user/actions"; import { userSaga } from "./user/sagas"; @@ -28,3 +28,4 @@ export const persistor = persistStore(store, null, () => { sagaMiddleware.run(authSaga); sagaMiddleware.run(userSaga); sagaMiddleware.run(docsSaga); +sagaMiddleware.run(uploadDocsTimer);