diff --git a/client/app/components/admin/torrentTable.jsx b/client/app/components/admin/torrentTable.jsx new file mode 100644 index 0000000..94d0f43 --- /dev/null +++ b/client/app/components/admin/torrentTable.jsx @@ -0,0 +1,85 @@ +import React, { Component } from 'react'; + +import { fetchJSON } from '../http.jsx'; + +class TorrentTable extends Component { + + constructor() { + super(); + this.state = { + torrentResponse: '', + showResults: false, + } + } + + componentWillReceiveProps(props) { + if (props.response !== undefined) { + this.setState({ + torrentResponse: props.response.map((torrent, index) => { + return ( + + {torrent.name} + {torrent.size} + {torrent.seed} + + + ) + }), + showResults: true, + }) + } + else { + this.setState({ + showResults: false, + }) + } + } + + sendToDownload(torrent) { + let data = {magnet: torrent.magnet} + fetchJSON('https://apollo.kevinmidboe.com/api/v1/pirate/add', 'POST', data) + .then((response) => { + // TODO: Show a card with response that the item has been sent, and the status of response. + console.log(response) + }) + .catch((error) => { + console.error(error); + }) + } + + generateTable() { + let style = { + table: { + width: '80%', + marginRight: 'auto', + marginLeft: 'auto', + }, + } + + return ( + + + + + + + + + + + { this.state.torrentResponse } + +
NameSizeSeedAdd
+ ); + } + + render() { + return ( +
+ { this.state.showResults ? this.generateTable() : null } +
+ ) + } +} + +export default TorrentTable \ No newline at end of file