UNPKG

@looker/embed-components

Version:
83 lines (82 loc) 2.5 kB
"use strict"; 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