Now the search request updates based on the input in the text field. Super simple, need better handling and styling.
This commit is contained in:
		| @@ -1,24 +1,51 @@ | ||||
| import React from 'react'; | ||||
|  | ||||
| import MovieObject from './MovieObject.jsx'; | ||||
|  | ||||
| class SearchRequest extends React.Component { | ||||
| 	constructor(props){ | ||||
|     super(props) | ||||
|     this.state = { | ||||
|       searchQuery: '' | ||||
|       searchQuery: '', | ||||
|       items: [] | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   componentDidMount(){ | ||||
|   	var that = this; | ||||
| 		fetch("https://apollo.kevinmidboe.com/api/v1/plex/request?query=interstellar") | ||||
|     .then(response => response.json()) | ||||
|     .then(data => this.setState({ | ||||
|         items: data | ||||
|       }) | ||||
|     ).catch(err => console.error('Error load: ', err.toString())); | ||||
|   } | ||||
|  | ||||
|   _handleKeyPress(e) { | ||||
|     if (e.key === 'Enter') { | ||||
|       console.log('do validate'); | ||||
|       var query = 'https://apollo.kevinmidboe.com/api/v1/plex/request?query=' + this.state.searchQuery; | ||||
|  | ||||
|       fetch(query) | ||||
|       .then(response => response.json()) | ||||
|       .then(data => this.setState({ | ||||
|           items: data | ||||
|         }) | ||||
|       ).catch(err => console.error('Error submit: ', err.toString())); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   printMovies(item) { | ||||
|     if (item != undefined) { | ||||
|       let a = new MovieObject(item); | ||||
|       return a.getElement(); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|  | ||||
|   handleChange(event){ | ||||
|     this.setState({ | ||||
|       searchQuery: event.target.value | ||||
|     }) | ||||
|     console.log(this.state.searchQuery); | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   render(){ | ||||
| @@ -26,11 +53,16 @@ class SearchRequest extends React.Component { | ||||
|       <div> | ||||
|         <input | ||||
|           type="text" | ||||
|           onKeyPress={this._handleKeyPress} | ||||
|           onChange={this.handleChange.bind(this)} | ||||
|           defaultValue={this.state.searchItem} | ||||
|           onKeyPress={(event) => this._handleKeyPress(event)} | ||||
|           onChange={event => this.handleChange(event)} | ||||
|           value={this.state.searchQuery} | ||||
|           /> | ||||
|           <br></br> | ||||
|  | ||||
|           {this.state.searchQuery} | ||||
|           <br></br> | ||||
|              | ||||
|           {this.state.items.map((item) => this.printMovies(item))} | ||||
|       </div> | ||||
|     ) | ||||
|   } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user