X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/e63198a93d7b537ffbb68b8210c99f76041fd112..f5127724c5ca39a59a08ba20f843e530b0650be9:/src/components/text-field/text-field.tsx diff --git a/src/components/text-field/text-field.tsx b/src/components/text-field/text-field.tsx index f7564f6128..1bf51973d4 100644 --- a/src/components/text-field/text-field.tsx +++ b/src/components/text-field/text-field.tsx @@ -4,8 +4,9 @@ import * as React from 'react'; import { WrappedFieldProps } from 'redux-form'; -import { ArvadosTheme } from '../../common/custom-theme'; -import { TextField as MaterialTextField, StyleRulesCallback, WithStyles, withStyles } from '../../../node_modules/@material-ui/core'; +import { ArvadosTheme } from '~/common/custom-theme'; +import { TextField as MaterialTextField, StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core'; +import RichTextEditor from 'react-rte'; type CssRules = 'textField'; @@ -15,7 +16,7 @@ const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ }, }); -export const TextField = withStyles(styles)((props: WrappedFieldProps & WithStyles & { label?: string }) => +export const TextField = withStyles(styles)((props: WrappedFieldProps & WithStyles & { label?: string, autoFocus?: boolean, required?: boolean }) => ); \ No newline at end of file + />); + + +interface RichEditorTextFieldData { + label?: string; +} + +type RichEditorTextFieldProps = RichEditorTextFieldData & WrappedFieldProps & WithStyles; + +export const RichEditorTextField = withStyles(styles)( + class RichEditorTextField extends React.Component { + state = { + value: RichTextEditor.createValueFromString(this.props.input.value, 'html') + }; + + onChange = (value: any) => { + this.setState({ value }); + this.props.input.onChange(value.toString('html')); + } + + render() { + return ; + } + } +); + +type DataTextFieldProps = WrappedFieldProps & WithStyles; + +export const DataTextField = withStyles(styles) + ((props: DataTextFieldProps) => + + ); \ No newline at end of file