drf-react-by-schema
Version:
Components and Tools for building a React App having Django Rest Framework (DRF) as server
44 lines (43 loc) • 1.65 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useRowMode = void 0;
const react_1 = require("react");
const useRowMode = (apiRef) => {
const [validationErrors, setValidationErrors] = (0, react_1.useState)({});
const [selectionModel, setSelectionModel] = (0, react_1.useState)([]);
const [selectionModelIds, setSelectionModelIds] = (0, react_1.useState)([]);
const handleSaveClick = (0, react_1.useCallback)((id) => () => {
apiRef.current.stopRowEditMode({ id });
}, [apiRef]);
const handleEditInlineClick = (0, react_1.useCallback)((id, fieldToFocus) => () => {
setTimeout(() => {
apiRef.current.startRowEditMode({ id, fieldToFocus });
if (fieldToFocus) {
apiRef.current.setCellFocus(id, fieldToFocus);
}
});
}, [apiRef]);
const handleCancelClick = (0, react_1.useCallback)((id) => () => {
apiRef.current.stopRowEditMode({ id, ignoreModifications: true });
}, [apiRef]);
const handleScrollToTop = (0, react_1.useCallback)(() => {
apiRef.current.scrollToIndexes({ rowIndex: 0 });
}, [apiRef]);
const isRowEditing = (0, react_1.useCallback)((id) => {
return apiRef.current.getRowMode(id) === 'edit';
}, [apiRef]);
return {
validationErrors,
setValidationErrors,
selectionModel,
setSelectionModel,
selectionModelIds,
setSelectionModelIds,
handleSaveClick,
handleEditInlineClick,
handleCancelClick,
handleScrollToTop,
isRowEditing,
};
};
exports.useRowMode = useRowMode;