primereact
Version:
A rich set of premium UI Components for React.
4 lines (2 loc) • 3.4 kB
JavaScript
'use client';
import{Component as g,withComponent as I}from"@primereact/core/component";import*as o from"react";import{createOptionalContext as v}from"@primereact/core/utils";var[B,c]=v();import{createOptionalContext as y}from"@primereact/core/utils";var[w,p]=y();var f={rowKey:"",rowData:void 0,rowIndex:void 0};var h=I({name:"DataTable.RowEditor",defaultProps:f,setup({props:t}){let e=c(),a=o.useMemo(()=>e?.editing?.isEditing(t.rowKey)??!1,[e?.state?.editingKeys,t.rowKey]),i=o.useRef(null),n=o.useRef(null),r=o.useRef(a);o.useEffect(()=>{let m=r.current;if(r.current=a,m===a)return;let P=requestAnimationFrame(()=>{let u=a?n.current:i.current;u&&typeof u.focus=="function"&&u.focus()});return()=>cancelAnimationFrame(P)},[a]);let l=o.useCallback(m=>{e?.editing?.startRowEdit(m,t.rowKey,t.rowData,t.rowIndex)},[e?.editing,t.rowKey,t.rowData,t.rowIndex]),d=o.useCallback(m=>{e?.editing?.saveRowEdit(m,t.rowKey,t.rowData,void 0,t.rowIndex)},[e?.editing,t.rowKey,t.rowData,t.rowIndex]),s=o.useCallback(m=>{e?.editing?.cancelRowEdit(m,t.rowKey,t.rowData,t.rowIndex)},[e?.editing,t.rowKey,t.rowData,t.rowIndex]),T=o.useMemo(()=>({isEditing:a,rowKey:t.rowKey,initRef:i,saveRef:n,onInitClick:l,onSaveClick:d,onCancelClick:s}),[a,t.rowKey,l,d,s]);return{datatable:e,isEditing:a,state:{isEditing:a},contextValue:T}},render(t){let{props:e,contextValue:a}=t;return o.createElement(w,{value:a},o.createElement(g,{instance:t,as:o.Fragment,children:e.children}))}});import{Component as k,withComponent as K}from"@primereact/core/component";import{mergeProps as M}from"@primeuix/utils";import*as E from"react";var R={as:"button"};var S=K({name:"DataTable.RowEditor.Init",defaultProps:R,setup(){let t=c(),e=p();return{datatable:t,editorContext:e}},render(t){let{id:e,props:a,ptmi:i,datatable:n,editorContext:r}=t;if(!r||r.isEditing)return null;let l=s=>{r.onInitClick(s)},d=M(n?.editing?.getRowEditorInitProps(),{id:e,ref:r.initRef,onClick:l},n?.ptm("rowEditorInit"),i("root"));return E.createElement(k,{instance:t,attrs:d,children:a.children})}});import{Component as H,withComponent as L}from"@primereact/core/component";import{mergeProps as V}from"@primeuix/utils";import*as C from"react";var b={as:"button"};var F=L({name:"DataTable.RowEditor.Save",defaultProps:b,setup(){let t=c(),e=p();return{datatable:t,editorContext:e}},render(t){let{id:e,props:a,ptmi:i,datatable:n,editorContext:r}=t;if(!r||!r.isEditing)return null;let l=s=>{r.onSaveClick(s)},d=V(n?.editing?.getRowEditorSaveProps(),{id:e,ref:r.saveRef,onClick:l},n?.ptm("rowEditorSave"),i("root"));return C.createElement(H,{instance:t,attrs:d,children:a.children})}});import{Component as A,withComponent as O}from"@primereact/core/component";import{mergeProps as q}from"@primeuix/utils";import*as D from"react";var x={as:"button"};var j=O({name:"DataTable.RowEditor.Cancel",defaultProps:x,setup(){let t=c(),e=p();return{datatable:t,editorContext:e}},render(t){let{id:e,props:a,ptmi:i,datatable:n,editorContext:r}=t;if(!r||!r.isEditing)return null;let l=s=>{r.onCancelClick(s)},d=q(n?.editing?.getRowEditorCancelProps(),{id:e,onClick:l},n?.ptm("rowEditorCancel"),i("root"));return D.createElement(A,{instance:t,attrs:d,children:a.children})}});export{h as DataTableRowEditor,j as DataTableRowEditorCancel,S as DataTableRowEditorInit,w as DataTableRowEditorProvider,F as DataTableRowEditorSave,f as defaultRowEditorProps,p as useDataTableRowEditorContext};