aboutsummaryrefslogtreecommitdiff
path: root/src/client/react/components/container/Search.tsx
diff options
context:
space:
mode:
authorNoah Loomans <noahloomans@gmail.com>2018-01-06 12:11:19 +0100
committerNoah Loomans <noahloomans@gmail.com>2018-01-06 12:11:19 +0100
commit77dccd31b32ee0a9a53b2186bae231069c5ab152 (patch)
treef90c5c524f1d3536a1f6ab665a7350739f590b7a /src/client/react/components/container/Search.tsx
parent95041dffbd23fe81802efd5fb25cffe492cdb551 (diff)
Revert "Move to typescript"
This reverts commit f0c8cf0e79f003514fd65a70def5820205955a77.
Diffstat (limited to 'src/client/react/components/container/Search.tsx')
-rw-r--r--src/client/react/components/container/Search.tsx131
1 files changed, 0 insertions, 131 deletions
diff --git a/src/client/react/components/container/Search.tsx b/src/client/react/components/container/Search.tsx
deleted file mode 100644
index fdd6c83..0000000
--- a/src/client/react/components/container/Search.tsx
+++ /dev/null
@@ -1,131 +0,0 @@
-import * as React from 'react';
-import { Dispatch } from 'redux';
-import { connect } from 'react-redux';
-import * as classnames from 'classnames';
-
-import SearchIcon = require('react-icons/lib/md/search');
-
-import { inputChange, changeSelectedResult } from '../../actions/search';
-import { Action } from '../../reducers/search';
-import { State } from '../../reducers';
-
-import users from '../../users';
-import Results from './Results';
-import IconFromUserType from '../presentational/IconFromUserType';
-
-interface SearchStatehProps {
- selectedResult: string,
- isExactMatch: boolean,
-}
-
-interface SearchDispatchProps {
- changeSelectedResult(relativeChange: 1 | -1): void,
- inputChange(typedValue: string): void,
-}
-
-class Search extends React.Component<SearchStatehProps & SearchDispatchProps, any> {
- constructor(props: SearchStatehProps & SearchDispatchProps) {
- super(props);
-
- this.state = {
- hasFocus: false,
- };
-
- this.onFocus = this.onFocus.bind(this);
- this.onBlur = this.onBlur.bind(this);
- this.onKeyDown = this.onKeyDown.bind(this);
- }
-
- onFocus() {
- this.setState({
- hasFocus: true,
- });
- }
-
- onBlur() {
- this.setState({
- hasFocus: false,
- });
- }
-
- onKeyDown(event: React.KeyboardEvent<any>) {
- if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {
- event.preventDefault();
- switch (event.key) {
- case 'ArrowUp':
- this.props.changeSelectedResult(-1);
- break;
- case 'ArrowDown':
- this.props.changeSelectedResult(+1);
- break;
- default:
- throw new Error('This should never happen... pls?');
- }
- }
- }
-
- render() {
- const {
- selectedResult,
- isExactMatch,
- inputChange,
- } = this.props;
-
- const {
- hasFocus,
- } = this.state;
-
- return (
- <div className={classnames('search', { 'search--has-focus': hasFocus })}>
- <div className="search__input-wrapper">
- <div className="search__icon-wrapper">
- <IconFromUserType
- userType={isExactMatch ? users.byId[selectedResult].type : null}
- defaultIcon={<SearchIcon />}
- />
- </div>
- <input
- id="search__input"
- onChange={event => inputChange(event.target.value)}
- onKeyDown={this.onKeyDown}
- placeholder="Zoeken"
- onFocus={this.onFocus}
- onBlur={this.onBlur}
- />
- </div>
- <Results />
- </div>
- );
- }
-}
-
-// Search.propTypes = {
-// selectedResult: PropTypes.string,
-// isExactMatch: PropTypes.bool.isRequired,
-// dispatch: PropTypes.func.isRequired,
-// };
-
-// Search.defaultProps = {
-// selectedResult: null,
-// };
-
-const mapStateToProps = (state: State):SearchStatehProps => ({
- selectedResult: state.search.selectedResult,
- isExactMatch: state.search.isExactMatch,
-});
-
-// const mapDispatchToProps = {
-// inputChange,
-// changeSelectedResult,
-// };
-
-const mapDispatchToProps = (dispatch: any): SearchDispatchProps => ({
- inputChange(typedValue) {
- dispatch(inputChange(typedValue));
- },
- changeSelectedResult(relativeChange) {
- dispatch(changeSelectedResult(relativeChange))
- }
-});
-
-export default connect(mapStateToProps, mapDispatchToProps)(Search);