PromucFlow_constructor/app/client/src/sagas/PageSagas.tsx

27 lines
1.0 KiB
TypeScript
Raw Normal View History

import CanvasWidgetsNormalizer from "../normalizers/CanvasWidgetsNormalizer"
import { ActionTypes, ReduxAction } from "../constants/ActionConstants"
import PageApi, { PageResponse, PageRequest } from "../api/PageApi"
2019-08-29 11:22:09 +00:00
import { call, put, takeEvery } from "redux-saga/effects"
import { RenderModes } from "../constants/WidgetConstants"
export function* fetchPageSaga(pageRequestAction: ReduxAction<PageRequest>) {
const pageRequest = pageRequestAction.payload
2019-08-26 12:41:21 +00:00
try {
const pageResponse: PageResponse = yield call(PageApi.fetchPage, pageRequest)
if (pageRequest.renderMode === RenderModes.CANVAS) {
const normalizedResponse = CanvasWidgetsNormalizer.normalize(pageResponse)
const payload = {
pageWidgetId: normalizedResponse.result,
widgets: normalizedResponse.entities.canvasWidgets
}
yield put({ type: ActionTypes.UPDATE_CANVAS, payload })
}
2019-08-29 11:22:09 +00:00
} catch(err){
2019-08-26 12:41:21 +00:00
//TODO(abhinav): REFACTOR THIS
}
}
export function* watchFetchPage() {
yield takeEvery(ActionTypes.FETCH_PAGE, fetchPageSaga)
}