Skip to content
Snippets Groups Projects
Unverified Commit 30b90a89 authored by Phoomparin Mano's avatar Phoomparin Mano Committed by GitHub
Browse files

migrate sdk reducers to use builder callback (#42038)

parent 389886d9
Branches
Tags
No related merge requests found
import type { PayloadAction } from "@reduxjs/toolkit";
import { createReducer } from "@reduxjs/toolkit";
import { createAction } from "redux-actions";
import { createReducer, createAction } from "@reduxjs/toolkit";
import type { SdkPluginsConfig } from "embedding-sdk/lib/plugins";
import type {
......@@ -70,69 +68,50 @@ const initialState: SdkState = {
errorComponent: null,
};
export const sdk = createReducer(initialState, {
[refreshTokenAsync.pending.type]: state => {
return {
...state,
token: {
...state.token,
loading: true,
},
};
},
[refreshTokenAsync.fulfilled.type]: (state, action) => {
return {
...state,
token: {
...state.token,
token: action.payload,
error: null,
loading: false,
},
};
},
[refreshTokenAsync.rejected.type]: (state, action) => {
return {
...state,
isLoggedIn: false,
token: {
...state.token,
token: null,
error: action.error,
loading: false,
},
};
},
[SET_LOGIN_STATUS]: (state, action: PayloadAction<LoginStatus>) => {
return {
...state,
loginStatus: action.payload,
};
},
[SET_PLUGINS]: (state, action: PayloadAction<SdkPluginsConfig | null>) => {
return {
...state,
plugins: action.payload,
};
},
[SET_LOADER_COMPONENT]: (
state,
action: PayloadAction<null | (() => JSX.Element)>,
) => {
return {
...state,
loaderComponent: action.payload,
};
},
[SET_ERROR_COMPONENT]: (
state,
action: PayloadAction<
null | (({ message }: { message: string }) => JSX.Element)
>,
) => {
return {
...state,
errorComponent: action.payload,
};
},
export const sdk = createReducer(initialState, builder => {
builder.addCase(refreshTokenAsync.pending, state => ({
...state,
token: { ...state.token, loading: true },
}));
builder.addCase(refreshTokenAsync.fulfilled, (state, action) => ({
...state,
token: {
...state.token,
token: action.payload,
error: null,
loading: false,
},
}));
builder.addCase(refreshTokenAsync.rejected, (state, action) => ({
...state,
isLoggedIn: false,
token: {
...state.token,
token: null,
error: action.error,
loading: false,
},
}));
builder.addCase(setLoginStatus, (state, action) => ({
...state,
loginStatus: action.payload,
}));
builder.addCase(setLoaderComponent, (state, action) => ({
...state,
loaderComponent: action.payload,
}));
builder.addCase(setPlugins, (state, action) => ({
...state,
plugins: action.payload,
}));
builder.addCase(setErrorComponent, (state, action) => ({
...state,
errorComponent: action.payload,
}));
});
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment