import React, { PropTypes } from 'react' import ReactDOM from 'react-dom' import ExternalLink from 'boost/components/ExternalLink' import { setSearchFilter, clearSearch } from 'boost/actions' import { openModal } from 'boost/modal' import Tutorial from 'boost/components/modal/Tutorial' export default class ArticleTopBar extends React.Component { constructor (props) { super(props) this.state = { isTooltipHidden: true } } componentDidMount () { this.searchInput = ReactDOM.findDOMNode(this.refs.searchInput) } componentWillUnmount () { this.searchInput.removeEventListener('keydown', this.showTooltip) this.searchInput.removeEventListener('focus', this.showTooltip) this.searchInput.removeEventListener('blur', this.showTooltip) } handleTooltipRequest (e) { if (this.searchInput.value.length === 0 && (document.activeElement === this.searchInput)) { this.setState({isTooltipHidden: false}) } else { this.setState({isTooltipHidden: true}) } } isInputFocused () { return document.activeElement === ReactDOM.findDOMNode(this.refs.searchInput) } escape () { let { status, dispatch } = this.props if (status.search.length > 0) { dispatch(clearSearch()) return } this.blurInput() } focusInput () { this.searchInput.focus() } blurInput () { this.searchInput.blur() } handleSearchChange (e) { let { dispatch } = this.props dispatch(setSearchFilter(e.target.value)) this.handleTooltipRequest() } handleSearchClearButton (e) { let { dispatch } = this.props dispatch(setSearchFilter('')) this.focusInput() } handleTutorialButtonClick (e) { openModal(Tutorial) } render () { return (