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.37 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 = FormActions;
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 FormActions({ formDisabled, model, objId, onCancel, onDelete, bottom, saveAndContinue, title, labelSave, labelSaveAndContinue, labelSaveAndCreateNew, labelCancel, labelRemove, }) {
const { onDeleteModel, isMobile } = (0, APIWrapperContext_1.useAPIWrapper)();
if (isMobile && !bottom) {
return react_1.default.createElement(react_1.default.Fragment, null);
}
const finalSx = Object.assign(Object.assign({}, styles_1.Layout.flexRowGrow), (bottom && !(0, utils_1.isTmpId)(objId)
? {
mb: 5,
pb: 2,
borderBottom: 'solid 1px #aaa',
}
: {}));
const handleDelete = () => {
if (objId && !(0, utils_1.isTmpId)(objId)) {
onDeleteModel(model, objId);
if (onDelete) {
onDelete(objId);
}
}
};
return (react_1.default.createElement(Box_1.default, { sx: finalSx },
bottom ? (react_1.default.createElement(Button_1.default, { variant: "contained", type: "button", color: "error", size: "small", disabled: (0, utils_1.isTmpId)(objId) || !onDeleteModel, onClick: handleDelete }, labelRemove || 'Remove')) : title ? (react_1.default.createElement(Typography_1.default, { variant: "h5" }, title)) : (react_1.default.createElement(Box_1.default, null)),
isMobile ? (react_1.default.createElement(Box_1.default, { sx: styles_1.Layout.flexRow },
react_1.default.createElement(Button_1.default, { variant: "contained", name: "exitOnSave", type: "submit", color: "primary", size: "small", sx: { ml: 1 }, disabled: formDisabled }, labelSave || 'Save'))) : (react_1.default.createElement(Box_1.default, { sx: styles_1.Layout.flexRow },
react_1.default.createElement(Button_1.default, { variant: "contained", color: "primary", size: "small", sx: { ml: 1 }, onClick: onCancel }, labelCancel || 'Cancel'),
!isMobile && 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 }, labelSaveAndCreateNew || 'Save and Create New'),
react_1.default.createElement(Button_1.default, { variant: "contained", name: "stayOnSave", type: "submit", color: "secondary", size: "small", sx: { ml: 1 }, disabled: formDisabled }, labelSaveAndContinue || 'Save and Continue'))),
react_1.default.createElement(Button_1.default, { variant: "contained", name: "exitOnSave", type: "submit", color: "primary", size: "small", sx: { ml: 1 }, disabled: formDisabled }, labelSave || 'Save')))));
}