UNPKG

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
"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)))); }