@looker/embed-components
Version:
47 lines • 1.36 kB
JavaScript
import { createSlice } from '@reduxjs/toolkit';
import { createSliceHooks } from '@looker/redux';
import { saga } from './sagas';
export var defaultThemesState = {
initialized: false,
defaultTheme: {},
selectedTheme: {},
themes: [],
working: false
};
export var THEMES_SLICE_NAME = 'themes';
export var themesSlice = createSlice({
name: THEMES_SLICE_NAME,
initialState: defaultThemesState,
reducers: {
initAction() {},
initSuccessAction(state) {
state.initialized = true;
},
loadThemeDataAction(state) {
state.working = true;
},
loadThemeDataSuccessAction(state, action) {
state.themes = action.payload.themes;
state.defaultTheme = action.payload.defaultTheme;
state.selectedTheme = action.payload.selectedTheme;
state.working = false;
},
selectThemeAction(state, _action) {
state.working = true;
},
selectThemeSuccessAction(state, action) {
state.selectedTheme = action.payload.selectedTheme;
state.working = false;
},
setFailureAction(state, action) {
state.error = action.payload.error;
state.working = false;
}
}
});
export var themeActions = themesSlice.actions;
export var {
useActions: useThemeActions,
useStoreState: useThemesStoreState
} = createSliceHooks(themesSlice, saga);
//# sourceMappingURL=slice.js.map