koval-ui
Version:
React components collection with minimalistic design. Supports theming, layout, and input validation.
3 lines (2 loc) • 1.34 kB
JavaScript
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react");;/* empty css */const v=require("../../../internal/utils/set.cjs"),R=require("../types.cjs"),b=require("../../Dialog/useDialogState.cjs"),x=({rowSelection:l,table:a,tableData:i,processingMode:r,setTableData:d,onEdit:m,clearSelection:h})=>{var f,p;const{openDialog:g}=b.useDialogState((f=a.options.meta)==null?void 0:f.deleteModalId),{openDialog:k}=b.useDialogState((p=a.options.meta)==null?void 0:p.editModalId),j=t.useCallback(()=>{g()},[g]),E=t.useCallback(()=>{k({selectionAmount:Object.keys(l).length})},[l,k]),s=t.useMemo(()=>Object.keys(l).map(e=>Number(e)),[l]),C=t.useCallback((e,n,o,u)=>{const c=[...e];return n.forEach(P=>{var y,D;const w=(D=(y=a.getColumn(o))==null?void 0:y.columnDef.meta)==null?void 0:D.accessorKey;v.set(c[P],w,u)}),c},[a]),O=t.useCallback((e,n)=>{const o=C(i,s,e,n),u=Object.fromEntries(s.map(c=>[c,o[c]]));r===R.ProcessingModes.internal&&d(o),m(u),h()},[h,C,m,r,s,d,i]),q=t.useCallback((e,n)=>e.filter((o,u)=>!n.has(u)),[]),M=t.useCallback(()=>{const e=q(i,new Set(s));r===R.ProcessingModes.internal&&d(e),m({}),h()},[q,i,s,r,d,m,h]);return{handleDeleteRequest:j,handleDelete:M,handleEdit:O,handleEditRequest:E}};exports.useEdit=x;
//# sourceMappingURL=useEdit.cjs.map