@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.12 kB
JavaScript
/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the package root for more information
*-------------------------------------------------------------------------------------------
*/
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const R=require("react"),p=require("@progress/kendo-react-common"),h=require("./ScrollButtonsWrapper.js"),D=require("../hooks/useScrollWithButtons.js");function O(r){const l=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const t in r)if(t!=="default"){const s=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(l,t,s.get?s:{enumerable:!0,get:()=>r[t]})}}return l.default=r,Object.freeze(l)}const o=O(R),g=r=>{const{suggestions:l,onSuggestionClick:t,suggestionsView:s,suggestionTemplate:c,suggestionsLayout:a,dir:i}=r,u=o.useRef(null),{canScrollLeft:f,canScrollRight:m,scrollLeft:y,scrollRight:S}=D.useScrollWithButtons(u,{enabled:a==="scrollbuttons",dir:i,itemsDependency:l}),d=o.useCallback((e,n)=>{(e.key==="Enter"||e.key===" ")&&(e.preventDefault(),t==null||t(n))},[t]),b=o.useCallback(()=>l.map(e=>c?o.createElement(c,{key:e.id,suggestion:e,onClick:()=>{t==null||t(e)}}):o.createElement("span",{role:"button",tabIndex:e.disabled?-1:0,"aria-label":e.description,"aria-disabled":e.disabled,onClick:()=>!e.disabled&&(t==null?void 0:t(e)),onKeyDown:n=>!e.disabled&&d(n,e),key:e.id,title:e.description,className:p.classNames(s==="classic"?"k-prompt-suggestion":"k-suggestion",{"k-disabled":e.disabled})},e.text)),[l,c,t,s,d]);if(!l||l.length===0)return null;if(s==="classic")return b();const k=o.createElement("div",{role:"group",className:p.classNames("k-suggestion-group",{"k-suggestion-group-scrollable":a==="scroll"}),ref:a==="scrollbuttons"?u:void 0},b());return o.createElement(h.ScrollButtonsWrapper,{visible:a==="scrollbuttons",dir:i,canScrollLeft:f,canScrollRight:m,onScrollLeft:y,onScrollRight:S},k)};exports.SuggestionGroup=g;