UNPKG

@looker/embed-components

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