From 994198426256b319d7a2d00d26cf658221feca60 Mon Sep 17 00:00:00 2001 From: Berkeley Martinez Date: Tue, 21 Jun 2016 12:15:18 -0700 Subject: [PATCH] Fix(map): update map filter components and esc key event --- .../routes/challenges/components/map/Map.jsx | 46 +++++++++++++------ 1 file changed, 33 insertions(+), 13 deletions(-) diff --git a/common/app/routes/challenges/components/map/Map.jsx b/common/app/routes/challenges/components/map/Map.jsx index fedaafb4f6..8571adfa5d 100644 --- a/common/app/routes/challenges/components/map/Map.jsx +++ b/common/app/routes/challenges/components/map/Map.jsx @@ -1,7 +1,7 @@ import React, { PropTypes } from 'react'; import classnames from 'classnames'; import PureComponent from 'react-pure-render/component'; -import { Input, Button, Row } from 'react-bootstrap'; +import { InputGroup, FormControl, Button, Row } from 'react-bootstrap'; import SuperBlock from './Super-Block.jsx'; import FullStack from './Full-Stack.jsx'; @@ -9,7 +9,12 @@ import CodingPrep from './Coding-Prep.jsx'; const clearIcon = ; const searchIcon = ; +const ESC = 27; export default class ShowMap extends PureComponent { + constructor(...props) { + super(...props); + this.handleKeyDown = this.handleKeyDown.bind(this); + } static displayName = 'Map'; static propTypes = { clearFilter: PropTypes.func, @@ -18,6 +23,12 @@ export default class ShowMap extends PureComponent { updateFilter: PropTypes.func }; + handleKeyDown(e) { + if (e.keyCode === ESC) { + this.props.clearFilter(); + } + } + renderSuperBlocks(superBlocks, updateCurrentChallenge) { if (!Array.isArray(superBlocks) || !superBlocks.length) { return
No Super Blocks
; @@ -33,6 +44,13 @@ export default class ShowMap extends PureComponent { }); } + renderSearchAddon(filter, clearFilter) { + if (!filter) { + return searchIcon; + } + return { clearIcon }; + } + render() { const { updateCurrentChallenge, @@ -41,9 +59,6 @@ export default class ShowMap extends PureComponent { clearFilter, filter } = this.props; - const inputIcon = !filter ? - searchIcon : - { clearIcon }; const inputClass = classnames({ 'map-filter': true, filled: !!filter @@ -66,15 +81,20 @@ export default class ShowMap extends PureComponent { - + + + + { this.renderSearchAddon(filter, clearFilter) } + +