import React, { Component } from 'react'; import { fetchJSON } from '../http.jsx'; import PirateSearch from './PirateSearch.jsx' // Stylesheets import requestInfoCSS from '../styles/adminRequestInfo.jsx' import buttonsCSS from '../styles/buttons.jsx'; // Interactive button import Interactive from 'react-interactive'; class AdminRequestInfo extends Component { constructor() { super(); this.state = { statusValue: '', } this.requestInfo = ''; } componentWillReceiveProps(props) { this.requestInfo = props.selectedRequest; this.state.statusValue = this.requestInfo.status; } userAgent(agent) { if (agent) { try { return agent.split(" ")[1].replace(/[\(\;]/g, ''); } catch(e) { return agent; } } return ''; } generateStatusDropdown() { return ( ) } updateRequestStatus(event) { const eventValue = event.target.value; const itemID = this.requestInfo.id; const apiData = { type: this.requestInfo.type, status: eventValue, } fetchJSON('https://apollo.kevinmidboe.com/api/v1/plex/request/' + itemID, 'PUT', apiData) .then((response) => { console.log('Response, updateRequestStatus: ', response) }) this.setState({ statusValue: eventValue }) } requested_by_user(request_user) { if (request_user === 'NULL') return undefined return ( Requested by: {request_user} ) } displayInfo() { const request = this.props.selectedRequest; if (request) { return (
{request.name} {request.year}
type: {request.type}
{this.generateStatusDropdown()}
status: {request.status}
ip: {request.ip}
user_agent: {this.userAgent(request.user_agent)}
request_date: {request.requested_date}
{ this.requested_by_user(request.requested_by) }
{}} style={buttonsCSS.edit} focus={buttonsCSS.edit_hover} hover={buttonsCSS.edit_hover}> Show info
) } } render() { return (
{this.displayInfo()}
); } } export default AdminRequestInfo;