@progress/kendo-react-grid
Version:
React Data Grid (Table) provides 100+ ready-to-use data grid features. KendoReact Grid package
9 lines (8 loc) • 2.04 kB
JavaScript
/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2026 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 v=require("react"),C=require("axios"),E=require("../utils/handleAIResponse.js");function M(s){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const t in s)if(t!=="default"){const a=Object.getOwnPropertyDescriptor(s,t);Object.defineProperty(o,t,a.get?a:{enumerable:!0,get:()=>s[t]})}}return o.default=s,Object.freeze(o)}const n=M(v);function D(s){const{requestUrl:o,requestOptions:t,role:a="user",columns:b=[],gridState:f,gridRef:d,onPromptRequest:p,onResponseSuccess:g,onResponseError:m,onStateChange:R,onMessages:h,onExportPdf:q}=s,[j,u]=n.useState(!1),[y,i]=n.useState(!1),S=n.useRef(null),O=n.useCallback((r,c,l)=>{if(i(!1),u(!1),f&&d){const e=E.handleAIResponse(r,f,d);R&&R(e.state),e.shouldExportPdf&&q&&q(),e.messages.length>0&&h&&h(e.messages,c,l)}g&&g(r,c,l)},[f,d,R,q,h,g]),k=n.useCallback(r=>{i(!1),u(!1),m&&m(r)},[m]),P=n.useCallback((r,c)=>{const l=C.CancelToken.source(),e={role:a||"user",columns:b||[],headers:{Accept:"*/*","Content-Type":"application/json"},promptMessage:r,requestOptions:{url:o,method:"POST",withCredentials:!1,responseType:"json",cancelToken:l.token,...t}};if(p&&p(e,c),e.requestOptions.url!==void 0){i(!0),u(!0);const{url:T,...x}=e.requestOptions;T&&(C(T,{...x,headers:e.headers,data:{columns:e.columns,contents:[{text:e.promptMessage}]},responseType:"json"}).then(A=>O(A,e.promptMessage,c)).catch(k),S.current=l)}},[a,b,o,t,p,O,k]),I=n.useCallback(()=>{S.current&&S.current.cancel("Request cancelled by user."),i(!1),u(!1)},[]);return{loading:j,streaming:y,sendRequest:P,cancelRequest:I}}exports.useGridAIRequest=D;