UNPKG

@progress/kendo-react-conversational-ui

Version:

React Chat component allows the user to participate in chat sessions with users or chat bots. KendoReact Conversational UI components

9 lines (8 loc) 2.31 kB
/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ "use strict";const C=require("react"),O=require("@progress/kendo-react-common"),T=require("@progress/kendo-react-layout"),j=require("./Attachment.js"),b=require("../utils.js"),w=require("@progress/kendo-react-intl"),l=require("../../messages/index.js");function L(n){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const a in n)if(a!=="default"){const r=Object.getOwnPropertyDescriptor(n,a);Object.defineProperty(e,a,r.get?r:{enumerable:!0,get:()=>n[a]})}}return e.default=n,Object.freeze(e)}const t=L(C),z=n=>{const{group:e,user:a,itemTemplate:r,attachmentTemplate:u,onRequestSelection:m,selectedItemIndex:i,isLastGroup:g,message:d,allowMessageCollapse:p,messageToolbarActions:h,messageContextMenuActions:v,messageWidthMode:f="standard"}=n,q=w.useLocalization(),o=e.messages.length>0&&b.isAuthor(a,e.messages[0]),c=!o,x=t.useMemo(()=>O.classNames("k-message-group",{"k-message-group-sender k-no-avatar":o,"k-message-group-receiver":c,"k-message-group-full-width":f==="full"}),[o,c,f]),S=()=>{if(!(!c||!k))return t.createElement(T.Avatar,{type:"image"},t.createElement("img",{src:k,alt:I}))},y=t.useMemo(()=>{const R=e.messages.length-1;return e.messages.map((s,N)=>{const M=[t.createElement(d,{item:s,template:r,selected:s.selectionIndex===i,onRequestSelection:m,tabIndex:N===R&&g?0:-1,key:s.id,allowMessageCollapse:p,messageToolbarActions:h,messageContextMenuActions:v,isSender:b.isAuthor(a,s)})];return s.attachments&&s.attachments.length===1&&M.push(t.createElement(j,{item:s.attachments[0],template:u,selected:!1,key:`att-${s.attachments[0].content}`})),M})},[e.messages,d,r,i,m,g,p,h,v,a,u]),{avatarUrl:k,avatarAltText:A,name:E}=e.author,I=A!==void 0?A:q.toLanguageString(l.avatarAlt,l.messages[l.avatarAlt]);return t.createElement("div",{className:x},S(),t.createElement("div",{className:"k-message-group-content"},t.createElement("span",{className:"k-message-author"},E),y))};module.exports=z;