UNPKG

@prisma-cms/front-editor

Version:
110 lines (85 loc) 2.48 kB
import React from 'react' import EditorComponent from '../../../EditorComponent' import MaterialUiTextField from 'material-ui/TextField' import { EditableObjectContext } from '../../../context' import moment from 'moment' class TextField extends EditorComponent { static defaultProps = { ...EditorComponent.defaultProps, label: undefined, helperText: undefined, fullWidth: false, multiline: false, type: 'text', hide_wrapper_in_default_mode: true, } static Name = 'TextField' static help_url = 'https://front-editor.prisma-cms.com/topics/editableobject.html' onBeforeDrop = () => { return } canBeDropped = () => { return false } renderPanelView(content) { return super.renderPanelView( content || <div className={'panelTextField'}>TextField</div> ) } renderChildren() { const { name, type, ...other } = this.getComponentProps(this) return ( <EditableObjectContext.Consumer key="editableobject_context"> {(context) => { const { getEditor, getObjectWithMutations } = context if (!getObjectWithMutations) { return null } const object = getObjectWithMutations() let { [name]: value } = object || {} switch (type) { case 'date': { const date = value ? moment(value) : '' if (date && date.isValid()) { value = date.format('YYYY-MM-DD') } } break case 'time': { const date = value ? moment(value) : '' if (date && date.isValid()) { value = date.format('HH:mm') } } break /** file value can not be setted */ case 'file': value = undefined break default: value = value || '' } return getEditor ? getEditor({ ...other, name, type, value: value, Editor: MaterialUiTextField, // ...this.getComponentProps(this), }) : super.renderChildren() }} </EditableObjectContext.Consumer> ) // return super.renderMainView({ // label: "FDSgdsf", // }); } } export default TextField