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.37 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 = 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'))))); }