all files / src/workflows/pyfr/components/root/ NewSimulation.js

50% Statements 22/44
42.86% Branches 6/14
28.57% Functions 2/7
55.88% Lines 19/34
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95                                                                                                                                                       
'use strict';
 
Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = pyFrNewSimulation;
 
var _react = require('react');
 
var _react2 = _interopRequireDefault(_react);
 
var _propTypes = require('prop-types');
 
var _propTypes2 = _interopRequireDefault(_propTypes);
 
var _Simput = require('Simput');
 
var _Simput2 = _interopRequireDefault(_Simput);
 
var _ItemEditor = require('../../../../panels/ItemEditor');
 
var _redux = require('../../../../redux');
 
var _network = require('../../../../redux/actions/network');
 
var NetActions = _interopRequireWildcard(_network);
 
function _interopRequireWildcard(obj) { Eif (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
 
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
// ----------------------------------------------------------------------------
 
/* eslint-disable import/extensions */
function onParseError(message) {
  (0, _redux.dispatch)(NetActions.errorNetworkCall('New Simulation', { message: message }));
}
 
// ----------------------------------------------------------------------------
 
/* eslint-enable import/extensions */
 
function parseAndValidate(file, owner) {
  return new Promise(function (accept, reject) {
    var reader = new FileReader();
    reader.onloadend = function () {
      if (reader.readyState !== FileReader.DONE) {
        onParseError('Ini file is invalid');
        reject();
      }
      try {
        _Simput2.default.types.pyfr.parse('pyfr', { 'pyfr.ini': reader.result });
      } catch (e) {
        onParseError('Error parsing file:\n' + e);
        owner().removeMetadata('ini');
        reject();
      }
      accept({});
    };
 
    reader.readAsText(file);
  });
}
 
// ----------------------------------------------------------------------------
 
function pyFrNewSimulation(props) {
  return _react2.default.createElement(
    'div',
    null,
    _react2.default.createElement(_ItemEditor.FileUploadEntry, {
      name: 'ini',
      label: 'Ini file*',
      accept: '.ini',
      owner: props.owner,
      postProcess: parseAndValidate
    }),
    _react2.default.createElement(
      'small',
      { style: { marginLeft: '200px' } },
      '* will override project ini, not required'
    )
  );
}
 
// ----------------------------------------------------------------------------
 
pyFrNewSimulation.propTypes = {
  owner: _propTypes2.default.func
};
 
pyFrNewSimulation.defaultProps = {
  owner: undefined
};