@prisma-cms/front-editor
Version:
144 lines • 7.42 kB
JavaScript
;
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