import { createElement, Component } from '@wordpress/element' import { __ } from 'ct-i18n' import classnames from 'classnames' import Tooltip from '../components/Tooltip' import { Transition, animated } from 'react-spring' import fileSaver from 'file-saver' const upperCase = val => (val ? val.toUpperCase() : val) let systemStatusData = null export default class SystemStatus extends Component { state = { isLoading: !systemStatusData, systemStatusData: systemStatusData || {} } componentDidMount() { wp.ajax.post('ct_load_system_status').then(data => { this.setState({ isLoading: false, systemStatusData: data }) systemStatusData = data }) } performDownload() { var blob = new Blob( [ JSON.stringify( { ...this.state.systemStatusData, browser_info: jQuery.browser }, null, ' ' ) ], { type: 'text/plain;charset=utf-8' } ) let date = new Date() let year = date.getFullYear() let month = date.getMonth() let day = date.getDate() let hour = date.getHours() let minutes = date.getMinutes() const filename = `blocksy-system-status-${year}-${month}-${day}-${hour}-${minutes}.json.txt` fileSaver.saveAs(blob, filename) } render() { return (
{ return phase === 'leave' ? { duration: 300 } : { delay: 300, duration: 300 } }}> {isLoading => { if (isLoading) { return props => ( {__( 'Collecting System Status...', 'blocksy' )} ) } return props => (

{__( 'Download the system report file by clicking this button and send it to us in case you have problems. This report will help us identify faster the problem and fix it.', 'blocksy' )}

this.performDownload()} className="ct-button-primary"> {__('Download Report', 'blocksy')}
{Object.values(this.state.systemStatusData).map( (group, i) => (

{upperCase(group.title)}

    {Object.values( group.options ).map((entry, ii) => (
  • {entry.title}

    {entry.value} {entry.message && entry.doc && ( { entry.text } )}

  • ))}
) )}
) }}
) } }