@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) • 1.67 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
*-------------------------------------------------------------------------------------------
*/
;const y=require("react"),f=require("@progress/kendo-react-common"),I=require("./Action.js");function x(s){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const a in s)if(a!=="default"){const r=Object.getOwnPropertyDescriptor(s,a);Object.defineProperty(t,a,r.get?r:{enumerable:!0,get:()=>s[a]})}}return t.default=s,Object.freeze(t)}const o=x(y),S=s=>{var m;const{group:t,onActionExecute:a,selected:r,onRequestSelection:d}=s,[e,u]=o.useState(null);o.useEffect(()=>{!r&&e!==null?u(null):r&&e===null&&u(0)},[r,e]);const g=o.useCallback(()=>t.actions?t.actions.length-1:-1,[t.actions]),i=o.useCallback((n,c=0)=>{let l=null;return n?e===null?l=c:e<g()&&(l=e+1):e===null?l=0:e>0&&(l=e-1),l!==null&&u(l),l},[e,g]),p=o.useCallback(()=>{d(t.selectionIndex)},[d,t.selectionIndex]),b=o.useCallback(n=>{let c=null;const l=f.Keys.left,k=f.Keys.right;n.keyCode===l?c=i(!1):n.keyCode===k&&(c=i(!0)),c!==null&&(n.preventDefault(),n.stopPropagation())},[i]),C=o.useCallback(()=>f.classNames("k-suggestion-group"),[]);return o.createElement("div",{className:C(),onClick:p,onKeyDown:b,role:"toolbar",tabIndex:0,"aria-label":"Action group"},(m=t.actions)==null?void 0:m.map((n,c)=>o.createElement(I,{item:n,onActionExecute:a,selected:c===e,key:n.value})))};module.exports=S;