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.14 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"),i=require("@progress/kendo-react-common"),p=require("@progress/kendo-react-layout"),l=require("./Attachment.js"),u=require("../utils.js"),m=require("@progress/kendo-react-intl"),n=require("../messages/index.js");function g(r){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const e in r)if(e!=="default"){const t=Object.getOwnPropertyDescriptor(r,e);Object.defineProperty(s,e,t.get?t:{enumerable:!0,get:()=>r[e]})}}return s.default=r,Object.freeze(s)}const a=g(c);class h extends a.Component{render(){const{avatarUrl:s,avatarAltText:e,name:t}=this.props.group.author,o=m.provideLocalizationService(this);return a.createElement("div",{className:this.getMsgGroupClassNames()},t&&a.createElement("p",{className:"k-author"},t),s&&a.createElement(p.Avatar,{type:"image"},a.createElement("img",{src:s,alt:e!==void 0?e:o.toLanguageString(n.avatarAlt,n.messages[n.avatarAlt])})),this.getGroupMessagesView())}getMsgGroupClassNames(){return i.classNames("k-message-group",{"k-no-avatar":!this.props.group.author.avatarUrl,"k-alt":u.isAuthor(this.props.user,this.props.group.messages[0])})}getGroupMessagesView(){const s=this.props.group.messages.length-1;return this.props.group.messages.map((e,t)=>{const o=[a.createElement(this.props.message,{item:e,template:this.props.itemTemplate,selected:e.selectionIndex===this.props.selectedItemIndex,onRequestSelection:this.props.onRequestSelection,tabIndex:t===s&&this.props.isLastGroup?0:-1,isFirstItemInGroup:t===0,isLastItemInGroup:t===s,isOnlyItemInGroup:s===0,key:t})];return e.attachments&&e.attachments.length===1&&o.push(a.createElement(l,{item:e.attachments[0],template:this.props.attachmentTemplate,selected:!1,key:`att-${t}`})),o})}}module.exports=h;