import React, { PureComponent } from "react"
import { SearchBar } from "antd-mobile"
import { withRouter } from "react-router-dom"
import classnames from "classnames"

import "./search_header.scss"

class SearchHead extends PureComponent {
  state = {
    isFocus: false,
  }

  returnPage = () => {
    this.props.history.go(-1)
  }

  componentDidMount() {
    this.refs.search.focus()
  }

  search = () => {
    this.storeKeyword()
    this.props.handleSearch()
  }

  storeKeyword = () => {
    const { searchHistory = [], value } = this.props
    const data = searchHistory.some((item) => item === value)
      ? searchHistory
      : searchHistory.concat([value])
    // value && localStorage.setItem('searchHistory', JSON.stringify([...searchHistory, value]))
    localStorage.setItem("searchHistory", JSON.stringify(data))
  }

  changeFontColor = (isFocus) => {
    this.setState({
      isFocus,
    })
  }

  render() {
    const { isFocus } = this.state
    const cls = classnames("submit-btn", { "submit-btn--active": isFocus })
    return (
      <div
        className="search-head"
        style={this.props.style}
        ref={this.props.forwardedRef}
      >
        <div className="left" onClick={this.returnPage}>
          <i className="iconfont iconiconfront-68" />
        </div>

        <div className="center">
          <SearchBar
            value={this.props.value}
            showCancelButton
            cancelText={" "}
            ref="search"
            focus={true}
            onChange={this.props.handleChange}
            placeholder="搜索课程"
            onFocus={() => this.changeFontColor(true)}
            onBlur={() => this.changeFontColor(false)}
            onSubmit={this.search}
          />
        </div>
        <div className="right right-btn" onClick={this.search}>
          <div className={cls}>搜索</div>
        </div>
      </div>
    )
  }
}

export default withRouter(SearchHead)