import React, { Component } from 'react'; import ReactDOM from 'react-dom'; import { Modal, Button } from 'react-bootstrap'; import Axios from 'axios'; import { toast } from 'react-toastify'; export default class TableRow extends Component { constructor(props) { super(props) this.state = { data: this.props.data, show: false, } } toggleShow = () => { var show = this.state.show; if(show) { this.setState({ show: false }); } else { this.setState({ show: true }); } } delete = (id) => { var url = 'api/speedtest/delete/' + id + '?token=' + window.token; Axios.delete(url) .then((resp) => { console.log(resp); toast.success('Speedtest deleted'); }) .catch((err) => { if(err.response.status == 404) { toast.warning('Speedtest not found'); } else { toast.error('Something went wrong'); } }) this.props.refresh(); this.toggleShow(); } getDataFields = () => { let allFields = this.props.allFields; let data = this.state.data; let processedFields = []; for(var key in allFields) { let field = allFields[key]; let value = data[key]; if(field.type === 'date') { value = new Date(value).toLocaleString(); } else if(field.type === 'bool') { value = Boolean(value) ? field.if_true : field.if_false } let final = { name: key, key: field.alias, value: value, type: field.type }; processedFields.push(final); } let visible = []; let inModal = []; window.config.tables.visible_columns.forEach(column => { visible.push(processedFields.find(x => x.name == column)); }); inModal = processedFields.filter(el => { return !visible.includes(el); }); return { visible: visible, modal: inModal }; } render() { var e = this.state.data; var show = this.state.show; var fields = this.getDataFields(); if(e.failed != true) { return (
{e.key}: Speedtest.net
); } else { return ({e.key}: {e.value}
); } })}