diff options
author | ARULNA <arul.nambi@amdocs.com> | 2017-06-02 16:27:25 -0400 |
---|---|---|
committer | ARULNA <arul.nambi@amdocs.com> | 2017-06-02 16:33:14 -0400 |
commit | ca007e933bcd9f63aa77801656ed9dd4142c432c (patch) | |
tree | ce97ed9df8c4fe48a524f0dc1365ad28acef7c46 /src/generic-components/input/SelectInput.jsx | |
parent | 42b788b852f0604748828e9e325e4a0f01152c75 (diff) |
Initial coomit for AAI-UI(sparky-fe)
Change-Id: I9f8482824a52bac431c100939899e760c0fa4fdb
Signed-off-by: ARULNA <arul.nambi@amdocs.com>
Diffstat (limited to 'src/generic-components/input/SelectInput.jsx')
-rw-r--r-- | src/generic-components/input/SelectInput.jsx | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/src/generic-components/input/SelectInput.jsx b/src/generic-components/input/SelectInput.jsx new file mode 100644 index 0000000..3b5087e --- /dev/null +++ b/src/generic-components/input/SelectInput.jsx @@ -0,0 +1,81 @@ +/* + * ============LICENSE_START=================================================== + * SPARKY (AAI UI service) + * ============================================================================ + * Copyright © 2017 AT&T Intellectual Property. + * Copyright © 2017 Amdocs + * All rights reserved. + * ============================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END===================================================== + * + * ECOMP and OpenECOMP are trademarks + * and service marks of AT&T Intellectual Property. + */ + +/** + * The HTML structure here is aligned with bootstrap HTML structure for form + * elements. In this way we have proper styling and it is aligned with other + * form elements on screen. + * + * Select and MultiSelect options: + * + * label - the label to be shown which paired with the input + * + * all other "react-select" props - as documented on + * http://jedwatson.github.io/react-select/ + * or + * https://github.com/JedWatson/react-select + */ +import React, {Component} from 'react'; +import Select from 'react-select'; + +class SelectInput extends Component { + + inputValue = []; + + render() { + let {label, value, ...other} = this.props; + return ( + <div className='validation-input-wrapper dropdown-multi-select'> + <div className='form-group'> + {label && <label className='control-label'>{label}</label>} + <Select ref='_myInput' + onChange={value => this.onSelectChanged(value)} {...other} + value={value}/> + </div> + </div> + ); + } + + getValue() { + return this.inputValue && this.inputValue.length ? this.inputValue : ''; + } + + onSelectChanged(value) { + this.props.onMultiSelectChanged(value); + } + + componentDidMount() { + let {value} = this.props; + this.inputValue = value ? value : []; + } + + componentDidUpdate() { + if (this.inputValue !== this.props.value) { + this.inputValue = this.props.value; + } + } +} + +export default SelectInput; |