var __rest = (this && this.__rest) || function (s, e) {
    var t = {};
    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
        t[p] = s[p];
    if (s != null && typeof Object.getOwnPropertySymbols === "function")
        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
                t[p[i]] = s[p[i]];
        }
    return t;
};
import React, { useRef } from 'react';
import ReactResizeDetector from 'react-resize-detector';
import { useDidUpdateEffect } from '../hooks/useDidUpdateEffect';
export var RowCellAutoSizer = function (_a) {
    var onChangeHeight = _a.onChangeHeight, cell = _a.children, cellProps = __rest(_a, ["onChangeHeight", "children"]);
    var cellRef = useRef();
    var rowValue = cellProps.rowValue, rowIndex = cellProps.rowIndex, columnData = cellProps.columnData, cellIndex = cellProps.cellIndex;
    var changeCellHeight = onChangeHeight({ rowIndex: rowIndex, cellIndex: cellIndex, columnData: columnData, rowValue: rowValue });
    var adjustCellHeight = function () { return cellRef.current && changeCellHeight(cellRef.current.clientHeight); };
    useDidUpdateEffect(adjustCellHeight, [rowValue.rawValue]);
    return (React.createElement("div", { ref: cellRef },
        React.createElement(ReactResizeDetector, { handleHeight: true, onResize: adjustCellHeight }),
        cell));
};
