@botonic/react
Version:
Build Chatbots using React
57 lines • 2.77 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.webchatReducer = webchatReducer;
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 { ...state, ...action.payload };
case actions_1.WebchatAction.REMOVE_WEBVIEW:
return { ...state, webview: undefined, webviewParams: undefined };
case actions_1.WebchatAction.UPDATE_SESSION:
return { ...state, session: { ...action.payload } };
case actions_1.WebchatAction.UPDATE_TYPING:
return { ...state, typing: action.payload };
case actions_1.WebchatAction.UPDATE_THEME:
return {
...state,
...action.payload,
};
case actions_1.WebchatAction.UPDATE_HANDOFF:
return { ...state, handoff: action.payload };
case actions_1.WebchatAction.TOGGLE_WEBCHAT: {
const isWebchatOpen = action.payload;
return {
...state,
isWebchatOpen,
};
}
case actions_1.WebchatAction.TOGGLE_EMOJI_PICKER:
return { ...state, isEmojiPickerOpen: action.payload };
case actions_1.WebchatAction.TOGGLE_PERSISTENT_MENU:
return { ...state, isPersistentMenuOpen: action.payload };
case actions_1.WebchatAction.TOGGLE_COVER_COMPONENT:
return { ...state, isCoverComponentOpen: action.payload };
case actions_1.WebchatAction.DO_RENDER_CUSTOM_COMPONENT:
return { ...state, isCustomComponentRendered: action.payload };
case actions_1.WebchatAction.SET_ERROR:
return { ...state, error: action.payload || {} };
case actions_1.WebchatAction.SET_ONLINE:
return { ...state, online: action.payload };
case actions_1.WebchatAction.UPDATE_DEV_SETTINGS:
return { ...state, devSettings: { ...action.payload } };
case actions_1.WebchatAction.UPDATE_LATEST_INPUT:
return { ...state, latestInput: action.payload };
case actions_1.WebchatAction.UPDATE_LAST_ROUTE_PATH:
return { ...state, lastRoutePath: action.payload };
case actions_1.WebchatAction.SET_CURRENT_ATTACHMENT:
return { ...state, currentAttachment: action.payload };
case actions_1.WebchatAction.SET_IS_INPUT_FOCUSED:
return { ...state, isInputFocused: action.payload };
default:
return (0, messages_reducer_1.messagesReducer)(state, action);
}
}
//# sourceMappingURL=webchat-reducer.js.map