@looker/embed-components
Version:
83 lines (82 loc) • 2.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.saga = saga;
var _typedReduxSaga = require("typed-redux-saga");
var _embedServices = require("@looker/embed-services");
var _slice = require("./slice");
function* initSaga() {
var {
initSuccessAction,
setFailureAction
} = _slice.themeActions;
try {
(0, _embedServices.registerThemeService)();
yield* (0, _typedReduxSaga.put)(initSuccessAction());
} catch (error) {
yield* (0, _typedReduxSaga.put)(setFailureAction({
error: error.message
}));
}
}
function* loadThemeDataSaga() {
var {
loadThemeDataSuccessAction,
setFailureAction
} = _slice.themeActions;
try {
var _urlTheme;
var service = (0, _embedServices.getThemeService)();
yield* (0, _typedReduxSaga.call)([service, 'load']);
var searchParams = new _embedServices.EmbedUrl().searchParams;
var urlThemeName = searchParams.theme;
var urlTheme;
if (urlThemeName) {
urlTheme = service.find('name', urlThemeName);
}
yield* (0, _typedReduxSaga.put)(loadThemeDataSuccessAction({
themes: service.items,
defaultTheme: service.defaultTheme,
selectedTheme: (_urlTheme = urlTheme) !== null && _urlTheme !== void 0 ? _urlTheme : service.defaultTheme
}));
} catch (error) {
yield* (0, _typedReduxSaga.put)(setFailureAction({
error: error.message
}));
}
}
function* selectThemeSaga(action) {
var {
selectThemeSuccessAction,
setFailureAction
} = _slice.themeActions;
try {
var _item;
var service = (0, _embedServices.getThemeService)();
yield* (0, _typedReduxSaga.call)([service, 'getAll']);
var key = action.payload.key;
var item = service.indexedItems[key];
if (!item) {
item = service.find(['id', 'name'], "^".concat(key, "$"));
}
yield* (0, _typedReduxSaga.put)(selectThemeSuccessAction({
selectedTheme: (_item = item) !== null && _item !== void 0 ? _item : service.defaultTheme
}));
} catch (error) {
yield* (0, _typedReduxSaga.put)(setFailureAction({
error: error.message
}));
}
}
function* saga() {
var {
initAction,
loadThemeDataAction,
selectThemeAction
} = _slice.themeActions;
yield* (0, _typedReduxSaga.takeEvery)(initAction, initSaga);
yield* (0, _typedReduxSaga.takeEvery)(loadThemeDataAction, loadThemeDataSaga);
yield* (0, _typedReduxSaga.takeEvery)(selectThemeAction, selectThemeSaga);
}
//# sourceMappingURL=sagas.js.map