UNPKG

@prisma-cms/front-editor

Version:
144 lines 7.42 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __rest = (this && this.__rest) || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.FileUploader = void 0; const react_1 = __importStar(require("react")); const prop_types_1 = __importDefault(require("prop-types")); const Typography_1 = __importDefault(require("material-ui/Typography")); const EditorComponent_1 = __importDefault(require("../../EditorComponent")); const context_1 = require("../../context"); class FileUploader extends EditorComponent_1.default { renderPanelView(content) { return super.renderPanelView(content || (react_1.default.createElement("div", { className: "editor-component--panel-icon" }, "FileUploader"))); } prepareRootElementProps(props) { const _a = super.prepareRootElementProps(props), { // eslint-disable-next-line @typescript-eslint/no-unused-vars filename_as_name } = _a, other = __rest(_a, ["filename_as_name"]); return other; } getRootElement() { return super.getRootElement(); } canBeParent(parent) { return super.canBeParent(parent); } canBeChild() { return false; } renderChildren() { const _a = this.getComponentProps(this), { name, accept, directory, filename_as_name, multiple } = _a, other = __rest(_a, ["name", "accept", "directory", "filename_as_name", "multiple"]); const { inEditMode } = this.getEditorContext(); if (!name) { if (inEditMode) { return react_1.default.createElement(Typography_1.default, { color: "error" }, "Property \"name\" required"); } else { return null; } } return (react_1.default.createElement(context_1.EditableObjectContext.Consumer, { key: "editableobject_context" }, (editableObjectContext) => { const { getEditor, updateObject, getObjectWithMutations } = editableObjectContext; if (!updateObject) { if (inEditMode) { return (react_1.default.createElement(Typography_1.default, { color: "error" }, "updateObject method required")); } else { return null; } } return getEditor ? getEditor(Object.assign(Object.assign({}, this.getComponentProps(this)), { Editor: (props) => { const { label, error, // errors, // helperText, // onChange, } = props; return (react_1.default.createElement(react_1.Fragment, null, label ? (react_1.default.createElement(Typography_1.default, { color: error ? 'error' : 'textSecondary' }, label)) : null, this.renderUploader(Object.assign({ accept, directory, multiple, onUpload: (result) => { if (!result) { return; } let data; if (Array.isArray(result)) { const { [name]: field } = getObjectWithMutations(); const { connect } = field || {}; data = { [name]: { connect: (connect ? Array.isArray(connect) ? connect : [connect] : []).concat(result.map((n) => ({ id: n.id, }))), }, }; } else { const { id, path } = result; if (filename_as_name) { data = { [name]: path, }; } else { data = { [name]: { connect: { id, }, }, }; } } updateObject(data); } }, other)))); }, onChange: () => { return; } })) : super.renderChildren(); })); } } exports.FileUploader = FileUploader; FileUploader.Name = 'FileUploader'; FileUploader.propTypes = Object.assign(Object.assign({}, EditorComponent_1.default.propTypes), { label: prop_types_1.default.string, helperText: prop_types_1.default.string, directory: prop_types_1.default.string, filename_as_name: prop_types_1.default.bool.isRequired, multiple: prop_types_1.default.bool.isRequired }); FileUploader.defaultProps = Object.assign(Object.assign({}, EditorComponent_1.default.defaultProps), { label: undefined, helperText: undefined, directory: undefined, filename_as_name: false, accept: undefined, multiple: false }); exports.default = FileUploader; //# sourceMappingURL=index.js.map