UNPKG

@botonic/react

Version:

Build Chatbots using React

52 lines 3.27 kB
"use strict"; 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