drf-react-by-schema
Version:
Components and Tools for building a React App having Django Rest Framework (DRF) as server
44 lines (43 loc) • 3.35 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = FormButtons;
const react_1 = __importDefault(require("react"));
const Box_1 = __importDefault(require("@mui/material/Box"));
const Button_1 = __importDefault(require("@mui/material/Button"));
const Typography_1 = __importDefault(require("@mui/material/Typography"));
const styles_1 = require("../styles");
const utils_1 = require("../utils");
const APIWrapperContext_1 = require("../context/APIWrapperContext");
function FormButtons({ model, objId, title, formDisabled, cancelBtn, cancelBtnLabel = 'Cancel', deleteBtnLabel = 'Delete', saveAndCreateNewBtnLabel = 'Save and Create New', saveAndContinueBtnLabel = 'Save and Continue', saveBtnLabel = 'Save', onSuccess, bottom = false, borderBottom = true, saveAndContinue = true, sx = {}, }) {
const apiContext = react_1.default.useContext(APIWrapperContext_1.APIWrapperContext);
if (!apiContext) {
console.error('Error on drf-react-by-schema: there is no serverEndPoint configuration!');
return react_1.default.createElement(react_1.default.Fragment, null);
}
const onDeleteModel = apiContext.onDeleteModel;
// if (bottom && borderBottom && objId && objId !== 'novo' && sx !== null) {
// sx.mb = 5;
// sx.pb = 2;
// sx.borderBottom = 'solid 1px #aaa';
// }
const combinedSx = Object.assign(Object.assign(Object.assign({}, styles_1.Layout.flexRowGrow), sx), (bottom && borderBottom && objId && objId !== 'novo'
? {
mb: 5,
pb: 2,
borderBottom: 'solid 1px #aaa',
}
: {}));
return (react_1.default.createElement(Box_1.default, { sx: combinedSx },
bottom ? (react_1.default.createElement(Button_1.default, { variant: "contained", type: "button", color: "error", size: "small", disabled: (0, utils_1.isTmpId)(objId) || !onDeleteModel, onClick: () => {
onDeleteModel(model, objId, onSuccess);
} }, deleteBtnLabel)) : title ? (react_1.default.createElement(Typography_1.default, { variant: "h5" }, title)) : (react_1.default.createElement(Box_1.default, null)),
react_1.default.createElement(Box_1.default, { sx: styles_1.Layout.flexRow },
cancelBtn && (react_1.default.createElement(Button_1.default, { variant: "contained", color: "primary", size: "small", sx: { ml: 1 }, onClick: cancelBtn }, cancelBtnLabel)),
saveAndContinue && (react_1.default.createElement(react_1.default.Fragment, null,
react_1.default.createElement(Button_1.default, { variant: "contained", name: "createNewOnSave", type: "submit", color: "secondary", size: "small", sx: { ml: 1 }, disabled: formDisabled }, saveAndCreateNewBtnLabel),
react_1.default.createElement(Button_1.default, { variant: "contained", name: "stayOnSave", type: "submit", color: "secondary", size: "small", sx: { ml: 1 }, disabled: formDisabled }, saveAndContinueBtnLabel))),
react_1.default.createElement(Button_1.default, { variant: "contained", name: "exitOnSave", type: "submit", color: "primary", size: "small", sx: { ml: 1 }, disabled: formDisabled }, saveBtnLabel))));
}