Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions src/webchat/store/messages/message-handler.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Store } from "redux";
import { IMessage } from "../../../common/interfaces/message";
import { ISendMessageOptions } from "./message-middleware";
import { setBotAvatarOverrideUrl, setAgentAvatarOverrideUrl, setTyping } from "../ui/ui-reducer";
import { setBotAvatarNameOverride, setBotAvatarOverrideUrl, setAgentAvatarOverrideUrl, setTyping } from "../ui/ui-reducer";
import {
setCustomRatingCommentText,
setCustomRatingTitle,
Expand Down Expand Up @@ -34,7 +34,7 @@ export type ReceiveEventAction = ReturnType<typeof receiveEvent>;
export const createOutputHandler = (store: Store) => output => {
// handle custom webchat actions
if (output.data && output.data._webchat) {
const { agentAvatarOverrideUrl, botAvatarOverrideUrl } = output.data._webchat;
const { agentAvatarOverrideUrl, botAvatarOverrideUrl, botAvatarNameOverride } = output.data._webchat;

if (agentAvatarOverrideUrl !== undefined) {
store.dispatch(setAgentAvatarOverrideUrl(agentAvatarOverrideUrl));
Expand All @@ -43,6 +43,10 @@ export const createOutputHandler = (store: Store) => output => {
if (botAvatarOverrideUrl !== undefined) {
store.dispatch(setBotAvatarOverrideUrl(botAvatarOverrideUrl));
}

if (botAvatarNameOverride !== undefined) {
store.dispatch(setBotAvatarNameOverride(botAvatarNameOverride));
}
}

// handle custom plugin actions
Expand Down
1 change: 1 addition & 0 deletions src/webchat/store/messages/message-middleware.ts
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ export const getAvatarNameForMessage = (message: IMessage, state: StoreState) =>
case "bot":
case "engagement":
return (
state.ui.botAvatarNameOverride ||
(state.config.settings.layout.useOtherAgentLogo &&
state.config.settings.layout.botAvatarName) ||
state.config.settings.layout.title ||
Expand Down
16 changes: 16 additions & 0 deletions src/webchat/store/ui/ui-reducer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ export interface UIState {
fullscreenMessage: IMessage | undefined;
agentAvatarOverrideUrl?: string;
botAvatarOverrideUrl?: string;
botAvatarNameOverride?: string;
isPageVisible: boolean;
showHomeScreen: boolean;
showPrevConversations: boolean;
Expand Down Expand Up @@ -106,6 +107,13 @@ export const setBotAvatarOverrideUrl = (url: string) => ({
});
type SetBotAvatarOverrideUrlAction = ReturnType<typeof setBotAvatarOverrideUrl>;

const SET_BOT_AVATAR_NAME_OVERRIDE = "SET_BOT_AVATAR_NAME_OVERRIDE";
export const setBotAvatarNameOverride = (name: string) => ({
type: SET_BOT_AVATAR_NAME_OVERRIDE as "SET_BOT_AVATAR_NAME_OVERRIDE",
name,
});
type SetBotAvatarNameOverrideAction = ReturnType<typeof setBotAvatarNameOverride>;

const SET_PAGE_VISIBLE = "SET_PAGE_VISIBLE";
export const setPageVisible = (visible: boolean) => ({
type: SET_PAGE_VISIBLE as "SET_PAGE_VISIBLE",
Expand Down Expand Up @@ -166,6 +174,7 @@ type UIAction =
| SetFullscreenMessageAction
| SetAgentAvatarOverrideUrlAction
| SetBotAvatarOverrideUrlAction
| SetBotAvatarNameOverrideAction
| SetPageVisibleAction
| SetShowHomeScreenAction
| SetShowPrevConversationsAction
Expand Down Expand Up @@ -247,6 +256,13 @@ export const ui: Reducer<UIState, UIAction> = (state = getInitialState(), action
};
}

case SET_BOT_AVATAR_NAME_OVERRIDE: {
return {
...state,
botAvatarNameOverride: action.name,
};
}

case SET_PAGE_VISIBLE: {
return {
...state,
Expand Down