import React, { useEffect, useRef, useState } from 'react'; import { createPortal } from 'react-dom'; import { columns as mockColumns } from '../../mocks/mockTable'; import { config } from './constants/FORM_2/AHR'; function EditCellPortal({ cell, table, EditCell, onSaveStart, onSaveEnd, onError, isEditable }) { const ref = useRef(null); const [refTbody, setRefTbody] = useState(false); const [isSaving, setIsSaving] = useState(false); const isDisabled = false; useEffect(() => { if (ref.current) { const tbodyRef = ref.current.offsetParent?.offsetParent?.offsetParent; setRefTbody(tbodyRef); } }, []); const handleChange = async (val) => { table.setEditingCell(null); try { if (table.options.meta?.updateCell) { const success = await table.options.meta.updateCell( cell.row, cell.column, val ); if (success) { console.log('Cell updated successfully via WebSocket'); } else { console.error('Failed to update cell via WebSocket'); const errorMsg = 'Не удалось сохранить изменение'; onError?.(errorMsg); } } } catch (error) { console.error('Error updating cell:', error); onError?.(error.message); } }; return ( <>
{refTbody && !isSaving && createPortal(