From 1c5287e106f9a2223f323ca3f16f6e94da984d6f Mon Sep 17 00:00:00 2001 From: Alexander Rose <alex.rose@rcsb.org> Date: Fri, 5 Oct 2018 17:14:11 -0700 Subject: [PATCH] text param component --- src/mol-app/component/parameter/text.tsx | 40 ++++++++++++++++++++++++ src/mol-app/component/parameters.tsx | 3 ++ 2 files changed, 43 insertions(+) create mode 100644 src/mol-app/component/parameter/text.tsx diff --git a/src/mol-app/component/parameter/text.tsx b/src/mol-app/component/parameter/text.tsx new file mode 100644 index 000000000..cd6ad76f7 --- /dev/null +++ b/src/mol-app/component/parameter/text.tsx @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info. + * + * @author Alexander Rose <alexander.rose@weirdbyte.de> + */ + +import * as React from 'react' +import { TextParam } from 'mol-view/parameter'; + +export interface TextParamComponentProps { + param: TextParam + value: string + onChange(v: string): void +} + +export interface TextParamComponentState { + value: string +} + +export class TextParamComponent extends React.Component<TextParamComponentProps, TextParamComponentState> { + state = { + value: this.props.value + } + + onChange(value: string) { + this.setState({ value }) + this.props.onChange(value) + } + + render() { + return <div> + <span>{this.props.param.label} </span> + <input type='text' + value={this.state.value} + onChange={e => this.onChange(e.currentTarget.value)} + > + </input> + </div>; + } +} \ No newline at end of file diff --git a/src/mol-app/component/parameters.tsx b/src/mol-app/component/parameters.tsx index 084fb13df..70e2aee37 100644 --- a/src/mol-app/component/parameters.tsx +++ b/src/mol-app/component/parameters.tsx @@ -11,6 +11,7 @@ import { NumberParamComponent } from './parameter/number'; import { RangeParamComponent } from './parameter/range'; import { SelectParamComponent } from './parameter/select'; import { MultiSelectParamComponent } from './parameter/multi-select'; +import { TextParamComponent } from './parameter/text'; interface ParametersProps<P extends Params> { params: P @@ -32,6 +33,8 @@ function getParamComponent<P extends Param>(p: Param, value: P['defaultValue'], return <SelectParamComponent param={p} value={value} onChange={onChange} /> case 'multi-select': return <MultiSelectParamComponent param={p} value={value} onChange={onChange} /> + case 'text': + return <TextParamComponent param={p} value={value} onChange={onChange} /> } return '' } -- GitLab