var React = require('react'); var Router = require('react-router'); var Modal = require('react-bootstrap/Modal'); var RetinaImage = require('react-retina-image'); var $ = require('jquery'); var ContainerStore = require('./ContainerStore'); var Navigation = Router.Navigation; var ContainerModal = React.createClass({ _searchRequest: null, getInitialState: function () { return { query: '', results: [] }; }, componentDidMount: function () { this.refs.searchInput.getDOMNode().focus(); }, search: function (query) { var self = this; this._searchRequest = $.get('https://registry.hub.docker.com/v1/search?q=' + query, function (result) { if (self.isMounted()) { self.setState(result); console.log(result); } }); }, handleChange: function (e) { var query = e.target.value; if (query === this.state.query) { return; } if (this._searchRequest) { this._searchRequest.abort(); this._searchRequest = null; } clearTimeout(this.timeout); var self = this; this.timeout = setTimeout(function () { self.search(query); }, 250); }, handleClick: function (event) { var name = event.target.getAttribute('name'); var self = this; ContainerStore.create(name, 'latest', function (err, containerName) { ContainerStore.setActive(containerName); self.props.onRequestHide(); }); }, render: function () { var top = this.state.results.splice(0, 7); var self = this; var results = top.map(function (r) { var name; if (r.is_official) { name = {r.name}; } else { name = {r.name}; } return (
  • {name}
    {r.star_count}
  • ); }); return (
    What's an image?
    Results
      {results}
    ); } }); module.exports = ContainerModal;