opt-table
Version:
A Responsive and Customizable Rich Table
51 lines • 1.91 kB
JavaScript
import React, { useImperativeHandle } from "react";
function useAddRow(props) {
// const [added_rows, set_added_row] = React.useState<T[]>([]);
const [add_loading, set_add_loading] = React.useState(false);
const [show_error, set_show_error] = React.useState({
message: "",
input_index: null,
});
const openShowError = (index, message) => {
set_show_error({ input_index: index, message });
};
const closeShowError = (index, message) => {
set_show_error({ input_index: null, message: "" });
};
const [is_create_new_row, set_is_create_new_row] = React.useState(false);
const [newRow, addNewRow] = React.useState({});
const addNewRowHandler = (data) => {
addNewRow((pre) => (Object.assign(Object.assign({}, pre), { [data.key]: data.value })));
};
const clear_row_handler = () => {
// set_is_create_new_row(false);
addNewRow({});
};
// const refContext = useContext(sharedMethodContext);
useImperativeHandle(props.ref, () => ({
// ...refContext,
addNewRow: (value) => {
var _a, _b;
if (value === undefined) {
/* @ts-ignore */
(_b = (_a = props === null || props === void 0 ? void 0 : props.ref) === null || _a === void 0 ? void 0 : _a.current) === null || _b === void 0 ? void 0 : _b.setRowToEditMode(-1);
}
set_is_create_new_row((pre) => (value !== undefined ? value : !pre));
},
}), []);
return {
addNewRowHandler,
is_create_new_row,
set_is_create_new_row,
// added_rows,
clear_row_handler,
newRow,
add_loading,
openShowError,
closeShowError,
show_error,
set_add_loading,
};
}
export default useAddRow;
//# sourceMappingURL=useAddRow.js.map