// External Dependencies import React, {Component} from 'react'; // Internal Dependencies import './style.css'; class WpDataTable extends Component { static slug = 'DIVI_wpDataTable'; mounted = false; shortcode = '[wpdatatable]'; constructor(props) { super(props); this.state = { shortcode: this.shortcode }; } createShortCode () { let shortcode = '[wpdatatable' let tableId = this.props.id; let view = this.props.view; let var1 = this.props.var1; let var2 = this.props.var2; let var3 = this.props.var3; let var4 = this.props.var4; let var5 = this.props.var5; let var6 = this.props.var6; let var7 = this.props.var7; let var8 = this.props.var8; let var9 = this.props.var9; let export_file_name = this.props.export_file_name; let tablesCount = parseInt(this.props.table_array_length); if (tablesCount === 1) { return "Please create a wpDataTable first. You can find detailed instructions in our docs on this link."; } if (!isNumeric(tableId)) { tableId = tableId.substring(tableId.lastIndexOf('(id: ') + 4); tableId = tableId.substring(0, tableId.lastIndexOf(')')); } if (!parseInt(tableId)) { return 'Please select a wpDataTable.'; } shortcode += ' id=' + tableId; if (view) { shortcode += view === 'excel-like' ? ' table_view=excel' : ' table_view=regular'; } if (var1) { shortcode += ' var1=' + var1; } if (var2) { shortcode += ' var2=' + var2; } if (var3) { shortcode += ' var3=' + var3; } if (var4) { shortcode += ' var4=' + var4; } if (var5) { shortcode += ' var5=' + var5; } if (var6) { shortcode += ' var6=' + var6; } if (var7) { shortcode += ' var7=' + var7; } if (var8) { shortcode += ' var8=' + var8; } if (var9) { shortcode += ' var9=' + var9; } if (export_file_name) { shortcode += ' export_file_name=' + export_file_name; } shortcode += ']' return shortcode } componentDidMount () { this.mounted = true if (this.mounted) { this.shortcode = this.createShortCode() this.setState({ shortcode: this.shortcode }) } } componentDidUpdate (prevProps, prevState, snapshot) { if (this.mounted) { this.shortcode = this.createShortCode() if (prevState.shortcode !== this.shortcode) { this.setState({ shortcode: this.shortcode }) } } } componentWillUnmount () { this.mounted = false } render () { return (
) } } function isNumeric(str) { if (typeof str !== "string") return false return !isNaN(str) && !isNaN(parseFloat(str)) } export default WpDataTable;