@looker/embed-components
Version:
77 lines • 2.12 kB
JavaScript
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