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