<commit_before>import React, { Component } from 'react';
import {SystemUptime} from './PluginComponents';

export default class WebApp extends Component
{
  render()
  {
    return (
      <div className="fluid-container">
        <div className="row">
          <div className="col-md-3">
            <SystemUptime loadFrom={"/API/PiStatus/SystemUptime"} reloadEvery={30 * 1000} />
          </div>
        </div>
      </div>
    );
  }
}<commit_msg>allow plugins to load dynamically<commit_after>import React, { Component } from 'react';
import {PluginComponents} from './PluginComponents'

export default class WebApp extends Component
{
  render()
  {
    return (
      <div className="fluid-container">
        { PluginComponents.map(function(e, i) {
          const component = PluginComponents[i];
          if ((i + 1) % 2 === 0) {
            return (
              <div className="row">
                <div className="col-md-4">
                  <component.ref {...component.props} />
                </div>
              </div>
            )
          }
          else {
            return (
              <div className="col-md-4">
                <component.ref {...component.props} />
              </div>
            )
          }
        })}
      </div>
    );
  }
}
{'fraction_non_alphanumeric': 0.13908313908313907, 'fraction_numerical': 0.009324009324009324, 'mean_word_length': 1.639344262295082, 'pattern_counts': {'":': 0, '<': 20, '<?xml version=': 0, '>': 20, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6385240', 'n_tokens_mistral': 373, 'n_tokens_neox': 352, 'n_words': 80}