@botonic/react
Version:
Build Chatbots using React
52 lines • 3.27 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.webchatReducer = void 0;
const actions_1 = require("./actions");
const messages_reducer_1 = require("./messages-reducer");
// eslint-disable-next-line complexity
function webchatReducer(state, action) {
switch (action.type) {
case actions_1.WebchatAction.UPDATE_WEBVIEW:
return Object.assign(Object.assign({}, state), action.payload);
case actions_1.WebchatAction.REMOVE_WEBVIEW:
return Object.assign(Object.assign({}, state), { webview: null, webviewParams: null });
case actions_1.WebchatAction.UPDATE_SESSION:
return Object.assign(Object.assign({}, state), { session: Object.assign({}, action.payload) });
case actions_1.WebchatAction.UPDATE_TYPING:
return Object.assign(Object.assign({}, state), { typing: action.payload });
case actions_1.WebchatAction.UPDATE_THEME:
return Object.assign(Object.assign({}, state), action.payload);
case actions_1.WebchatAction.UPDATE_HANDOFF:
return Object.assign(Object.assign({}, state), { handoff: action.payload });
case actions_1.WebchatAction.TOGGLE_WEBCHAT: {
const isWebchatOpen = action.payload;
return Object.assign(Object.assign({}, state), { isWebchatOpen });
}
case actions_1.WebchatAction.TOGGLE_EMOJI_PICKER:
return Object.assign(Object.assign({}, state), { isEmojiPickerOpen: action.payload });
case actions_1.WebchatAction.TOGGLE_PERSISTENT_MENU:
return Object.assign(Object.assign({}, state), { isPersistentMenuOpen: action.payload });
case actions_1.WebchatAction.TOGGLE_COVER_COMPONENT:
return Object.assign(Object.assign({}, state), { isCoverComponentOpen: action.payload });
case actions_1.WebchatAction.DO_RENDER_CUSTOM_COMPONENT:
return Object.assign(Object.assign({}, state), { isCustomComponentRendered: action.payload });
case actions_1.WebchatAction.SET_ERROR:
return Object.assign(Object.assign({}, state), { error: action.payload || {} });
case actions_1.WebchatAction.SET_ONLINE:
return Object.assign(Object.assign({}, state), { online: action.payload });
case actions_1.WebchatAction.UPDATE_DEV_SETTINGS:
return Object.assign(Object.assign({}, state), { devSettings: Object.assign({}, action.payload) });
case actions_1.WebchatAction.UPDATE_LATEST_INPUT:
return Object.assign(Object.assign({}, state), { latestInput: action.payload });
case actions_1.WebchatAction.UPDATE_LAST_ROUTE_PATH:
return Object.assign(Object.assign({}, state), { lastRoutePath: action.payload });
case actions_1.WebchatAction.SET_CURRENT_ATTACHMENT:
return Object.assign(Object.assign({}, state), { currentAttachment: action.payload });
case actions_1.WebchatAction.SET_IS_INPUT_FOCUSED:
return Object.assign(Object.assign({}, state), { isInputFocused: action.payload });
default:
return (0, messages_reducer_1.messagesReducer)(state, action);
}
}
exports.webchatReducer = webchatReducer;
//# sourceMappingURL=webchat-reducer.js.map
;