core-app-worona
Version:
Core Package of Worona App
27 lines (24 loc) • 836 B
JavaScript
/* eslint-disable no-constant-condition */
import { takeEvery } from 'redux-saga';
import { put, take, select } from 'redux-saga/effects';
import { reduce } from 'lodash';
import * as types from '../types';
import * as actions from '../actions';
import * as selectors from '../selectors';
export const assetsLoadSaga = type =>
function* typedAssetsLoadSaga({ pkg }) {
while (true) {
const assets = yield select(selectors.getAssets);
const assetType = assets[pkg.name][type];
if (reduce(assetType, (acc, val) => acc && val, true)) {
yield put(actions.packageAssetsLoadSucceed({ pkg }));
break;
}
yield take(types.PACKAGE_ASSET_FILE_DOWNLOADED);
}
};
export default function* sagas() {
yield [
takeEvery(types.PACKAGE_ASSETS_LOAD_REQUESTED, assetsLoadSaga('css')),
];
}