Implement coding standards

This commit is contained in:
Felix Linker
2020-04-16 15:22:07 +02:00
parent ba9e7f1a32
commit ff455e349e
22 changed files with 89 additions and 112 deletions

View File

@@ -6,7 +6,6 @@ import { autoBind } from 'react-extras';
* Announcement component
*/
export default class Announcement extends React.Component {
static propTypes = {
text: PropTypes.string
};
@@ -27,5 +26,4 @@ export default class Announcement extends React.Component {
render() {
return <div className="announcement" >{this.props.text}</div>;
}
}

View File

@@ -56,12 +56,11 @@ function selectAll(e) {
* Coriolis App Header section / menus
*/
export default class Header extends TranslatedComponent {
/**
* Constructor
* @param {Object} props React Component properties
* @param {Object} context React Component context
*/
/**
* Constructor
* @param {Object} props React Component properties
* @param {Object} context React Component context
*/
constructor(props, context) {
super(props);
this.shipOrder = Object.keys(Ships).sort();
@@ -509,7 +508,7 @@ export default class Header extends TranslatedComponent {
<td style={{ width: 20 }}><span style={{ fontSize: 30 }}>A</span></td>
</tr>
<tr>
<td colSpan='3' style={{ textAlign: 'center', cursor: 'pointer' }} className='primary-disabled cap' onClick={this._resetTextSize.bind(this)}>{translate('reset')}</td>
<td colSpan='3' style={{ textAlign: 'center', cursor: 'pointer' }} className='primary-disabled cap' onClick={this._resetTextSize.bind(this)}>{translate('reset')}</td>
</tr>
</tbody>
</table>
@@ -608,7 +607,7 @@ export default class Header extends TranslatedComponent {
</div>
<div className='l menu'>
<div className={cn('menu-header', { selected: openedMenu == 'announce', disabled: this.props.announcements.length === 0})} onClick={this.props.announcements.length !== 0 && this._openAnnounce}>
<div className={cn('menu-header', { selected: openedMenu == 'announce', disabled: this.props.announcements.length === 0 })} onClick={this.props.announcements.length !== 0 && this._openAnnounce}>
<span className='menu-item-label'>{translate('announcements')}</span>
</div>
{openedMenu == 'announce' ? this._getAnnouncementsMenu() : null}
@@ -639,5 +638,4 @@ export default class Header extends TranslatedComponent {
</header>
);
}
}

View File

@@ -10,7 +10,6 @@ const MARGIN = { top: 15, right: 20, bottom: 35, left: 60 };
* Line Chart
*/
export default class LineChart extends TranslatedComponent {
static defaultProps = {
code: '',
xMin: 0,

View File

@@ -7,7 +7,6 @@ import { shallowEqual } from '../utils/UtilityFunctions';
* Link wrapper component
*/
export default class Link extends React.Component {
static propTypes = {
children: PropTypes.any,
href: PropTypes.string.isRequired,
@@ -56,5 +55,4 @@ export default class Link extends React.Component {
render() {
return <a {...this.props} onClick={this.handler}>{this.props.children}</a>;
}
}

View File

@@ -9,7 +9,6 @@ import Persist from '../stores/Persist';
* Permalink modal
*/
export default class ModalBatchOrbis extends TranslatedComponent {
static propTypes = {
ships: PropTypes.any.isRequired
};

View File

@@ -21,7 +21,6 @@ function buildComparator(a, b) {
* Compare builds modal
*/
export default class ModalCompare extends TranslatedComponent {
static propTypes = {
onSelect: PropTypes.func.isRequired,
builds: PropTypes.array
@@ -105,8 +104,8 @@ export default class ModalCompare extends TranslatedComponent {
let selectedBuilds = usedBuilds.map((build, i) =>
<tr key={i} onClick={this._removeBuild.bind(this, i)}>
<td className='tl'>{build.name}</td><
td className='tl'>{build.buildName}</td>
<td className='tl'>{build.name}</td>
<td className='tl'>{build.buildName}</td>
</tr>
);

View File

@@ -6,7 +6,6 @@ import TranslatedComponent from './TranslatedComponent';
* Export Modal
*/
export default class ModalExport extends TranslatedComponent {
static propTypes = {
title: PropTypes.string,
generator: PropTypes.func,

View File

@@ -7,7 +7,6 @@ import TranslatedComponent from './TranslatedComponent';
* Help Modal
*/
export default class ModalHelp extends TranslatedComponent {
static propTypes = {
title: PropTypes.string
};

View File

@@ -85,8 +85,6 @@ function detailedJsonToBuild(detailedBuild) {
* Import Modal
*/
export default class ModalImport extends TranslatedComponent {
static propTypes = {
builds: PropTypes.object, // Optional: Import object
};
@@ -130,7 +128,7 @@ export default class ModalImport extends TranslatedComponent {
if (data && data.Ship && data.Modules) {
const deflated = zlib.deflate(JSON.stringify(data), { to: 'string' });
let compressed = btoa(deflated);
this.setState({loadoutEvent: compressed});
this.setState({ loadoutEvent: compressed });
} else {
throw 'Loadout event must contain Ship and Modules';
}
@@ -542,7 +540,7 @@ export default class ModalImport extends TranslatedComponent {
{comparisonRows}
</tbody>
</table>
);
);
}
if(this.state.canEdit) {

View File

@@ -8,7 +8,6 @@ import Persist from '../stores/Persist';
* Permalink modal
*/
export default class ModalOrbis extends TranslatedComponent {
static propTypes = {
ship: PropTypes.any.isRequired
};
@@ -58,14 +57,14 @@ export default class ModalOrbis extends TranslatedComponent {
credentials: 'include',
mode: 'cors'
})
.then(data => data.json())
.then(res => {
this.setState({ authenticatedStatus: res.status || res.error });
})
.catch(err => {
console.error(err);
this.setState({ authenticatedStatus: err.message });
});
.then(data => data.json())
.then(res => {
this.setState({ authenticatedStatus: res.status || res.error });
})
.catch(err => {
console.error(err);
this.setState({ authenticatedStatus: err.message });
});
}
/**
@@ -98,7 +97,7 @@ export default class ModalOrbis extends TranslatedComponent {
let ship = this.state.ship;
let cat = e.target.value;
ship.category = cat;
this.setState({ship});
this.setState({ ship });
}
/**

View File

@@ -7,7 +7,6 @@ import ShortenUrl from '../utils/ShortenUrl';
* Permalink modal
*/
export default class ModalPermalink extends TranslatedComponent {
static propTypes = {
url: PropTypes.string.isRequired
};

View File

@@ -8,7 +8,6 @@ import Persist from '../stores/Persist';
* Permalink modal
*/
export default class ModalShoppingList extends TranslatedComponent {
static propTypes = {
ship: PropTypes.object.isRequired
};

View File

@@ -10,7 +10,6 @@ const LABEL_COLOUR = '#000000';
* A pie chart
*/
export default class PieChart extends Component {
static propTypes = {
data : PropTypes.array.isRequired
};

View File

@@ -136,7 +136,7 @@ export default class PowerManagement extends TranslatedComponent {
m.setPowerPriority(newPrio);
onChange();
}
}
};
}
/**

View File

@@ -114,11 +114,11 @@ export default class ShipPicker extends TranslatedComponent {
<span className='menu-item-label'>{shipString}</span>
</div>
{ menuOpen ?
<div className='menu-list' onClick={ (e) => e.stopPropagation() }>
<div className='quad'>
{this._renderPickerMenu()}
</div>
</div> : null }
<div className='menu-list' onClick={ (e) => e.stopPropagation() }>
<div className='quad'>
{this._renderPickerMenu()}
</div>
</div> : null }
</div>
</div>
);

View File

@@ -80,8 +80,8 @@ export default class ShipSummaryTable extends TranslatedComponent {
const canJump = true;
return <div id='summary'>
<div style={{display: "table", width: "100%"}}>
<div style={{display: "table-row"}}>
<div style={{ display: 'table', width: '100%' }}>
<div style={{ display: 'table-row' }}>
<table className={'summaryTable'}>
<thead>
<tr className='main'>
@@ -119,49 +119,49 @@ export default class ShipSummaryTable extends TranslatedComponent {
<tr>
<td onMouseEnter={termtip.bind(null, speedTooltip, { cap: 0 })}
onMouseLeave={hide}
>{canThrust
? <span>{int(speed)}{u['m/s']}</span>
: <span className='warning'>0<Warning/></span>
}</td>
>{canThrust ?
<span>{int(speed)}{u['m/s']}</span> :
<span className='warning'>0<Warning/></span>
}</td>
<td onMouseEnter={termtip.bind(null, boostTooltip, { cap: 0 })}
onMouseLeave={hide}
>{canBoost
? <span>{int(shipBoost)}{u['m/s']}</span>
: <span className='warning'>0<Warning/></span>
}</td>
>{canBoost ?
<span>{int(shipBoost)}{u['m/s']}</span> :
<span className='warning'>0<Warning/></span>
}</td>
<td onMouseEnter={termtip.bind(null, 'TT_SUMMARY_MAX_SINGLE_JUMP', { cap: 0 })}
onMouseLeave={hide}
>{canJump
>{canJump ?
// TODO:
? <span>{NaN}{u.LY}</span>
: <span className='warning'>0<Warning/></span>
}</td>
<span>{NaN}{u.LY}</span> :
<span className='warning'>0<Warning/></span>
}</td>
<td onMouseEnter={termtip.bind(null, 'TT_SUMMARY_UNLADEN_SINGLE_JUMP', { cap: 0 })}
onMouseLeave={hide}
>{canJump
>{canJump ?
// TODO:
? <span>{NaN}{u.LY}</span>
: <span className='warning'>0<Warning/></span>
}</td>
<span>{NaN}{u.LY}</span> :
<span className='warning'>0<Warning/></span>
}</td>
<td onMouseEnter={termtip.bind(null, 'TT_SUMMARY_LADEN_SINGLE_JUMP', { cap: 0 })}
onMouseLeave={hide}
>{canJump
? <span>{f2(jumpRangeMetrics.jumpRange)}{u.LY}</span>
: <span className='warning'>0<Warning/></span>
}</td>
>{canJump ?
<span>{f2(jumpRangeMetrics.jumpRange)}{u.LY}</span> :
<span className='warning'>0<Warning/></span>
}</td>
<td onMouseEnter={termtip.bind(null, 'TT_SUMMARY_UNLADEN_TOTAL_JUMP', { cap: 0 })}
onMouseLeave={hide}
>{canJump
>{canJump ?
// TODO:
? <span>{NaN}{u.LY}</span>
: <span className='warning'>0 <Warning/></span>
}</td>
<span>{NaN}{u.LY}</span> :
<span className='warning'>0 <Warning/></span>
}</td>
<td onMouseEnter={termtip.bind(null, 'TT_SUMMARY_LADEN_TOTAL_JUMP', { cap: 0 })}
onMouseLeave={hide}
>{canJump
? <span>{f2(jumpRangeMetrics.totalRange)}{u.LY}</span>
: <span className='warning'>0<Warning/></span>
}</td>
>{canJump ?
<span>{f2(jumpRangeMetrics.totalRange)}{u.LY}</span> :
<span className='warning'>0<Warning/></span>
}</td>
<td className={sgClassNames}
onMouseEnter={termtip.bind(null, sgTooltip, { cap: 0 })}
onMouseLeave={hide}
@@ -226,21 +226,21 @@ export default class ShipSummaryTable extends TranslatedComponent {
</tr>
</thead>
<tbody>
<tr>
<td>{translate(shieldGenerator.readMeta('type') || 'No Shield')}</td>
<td>{formats.pct1(1 - sgMetrics.explosive.damageMultiplier)}</td>
<td>{formats.pct1(1 - sgMetrics.kinetic.damageMultiplier)}</td>
<td>{formats.pct1(1 - sgMetrics.thermal.damageMultiplier)}</td>
<td></td>
<tr>
<td>{translate(shieldGenerator.readMeta('type') || 'No Shield')}</td>
<td>{formats.pct1(1 - sgMetrics.explosive.damageMultiplier)}</td>
<td>{formats.pct1(1 - sgMetrics.kinetic.damageMultiplier)}</td>
<td>{formats.pct1(1 - sgMetrics.thermal.damageMultiplier)}</td>
<td></td>
<td>{int(sgMetrics.shieldStrength || 0)}{u.MJ}</td>
<td>{int(sgMetrics.shieldStrength / sgMetrics.explosive.damageMultiplier || 0)}{u.MJ}</td>
<td>{int(sgMetrics.shieldStrength / sgMetrics.kinetic.damageMultiplier || 0)}{u.MJ}</td>
<td>{int(sgMetrics.shieldStrength / sgMetrics.thermal.damageMultiplier || 0)}{u.MJ}</td>
<td></td>
<td>{formats.time(sgMetrics.recover) || translate('Never')}</td>
<td>{formats.time(sgMetrics.recharge) || translate('Never')}</td>
</tr>
<td>{int(sgMetrics.shieldStrength || 0)}{u.MJ}</td>
<td>{int(sgMetrics.shieldStrength / sgMetrics.explosive.damageMultiplier || 0)}{u.MJ}</td>
<td>{int(sgMetrics.shieldStrength / sgMetrics.kinetic.damageMultiplier || 0)}{u.MJ}</td>
<td>{int(sgMetrics.shieldStrength / sgMetrics.thermal.damageMultiplier || 0)}{u.MJ}</td>
<td></td>
<td>{formats.time(sgMetrics.recover) || translate('Never')}</td>
<td>{formats.time(sgMetrics.recharge) || translate('Never')}</td>
</tr>
</tbody>
<thead>
<tr>
@@ -252,7 +252,7 @@ export default class ShipSummaryTable extends TranslatedComponent {
<th rowSpan={2} onMouseEnter={termtip.bind(null, 'TT_MODULE_PROTECTION_INTERNAL', { cap: 0 })} onMouseLeave={hide} className='lft'>{translate('internal protection')}</th>
</tr>
<tr>
<th>{`${translate('explosive')}`}</th>
<th>{`${translate('explosive')}`}</th>
<th>{`${translate('kinetic')}`}</th>
<th>{`${translate('thermal')}`}</th>
<th>{`${translate('caustic')}`}</th>

View File

@@ -123,16 +123,16 @@ export default class Slider extends React.Component {
/**
* Touch start handler
* @param {Event} event DOM Event
*
*
*/
_touchstart(event) {
this.touchStartTimer = setTimeout(() => this.sliderInputBox._setDisplay('block'), 1500);
}
/**
* Touch end handler
* @param {Event} event DOM Event
*
*
*/
_touchend(event) {
this.sliderInputBox.sliderVal.focus();
@@ -212,7 +212,7 @@ export default class Slider extends React.Component {
let margin = MARGIN_LR * scale;
let width = outerWidth - (margin * 2);
let pctPos = width * this.props.percent;
return <div><svg
return <div><svg
onMouseUp={this._up} onMouseEnter={this._enter.bind(this)} onMouseMove={this._move} onKeyUp={this._keyup} onKeyDown={this._keydown} style={style} ref={node => this.node = node} tabIndex="0">
<rect className='primary' style={{ opacity: 0.3 }} x={margin} y='0.25em' rx='0.3em' ry='0.3em' width={width} height='0.7em' />
<rect className='primary-disabled' x={margin} y='0.45em' rx='0.15em' ry='0.15em' width={pctPos} height='0.3em' />
@@ -231,7 +231,7 @@ export default class Slider extends React.Component {
scale={this.props.scale}
max={this.props.max}
/>
</div>;
</div>;
}
}
/**
@@ -269,14 +269,14 @@ class TextInputBox extends React.Component {
this.setState({ inputValue: nextValue });
}
}
/**
/**
* Update slider textbox visibility/values if changes are made to slider
* @param {Object} prevProps React Component properites
* @param {Object} prevState React Component state values
*/
componentDidUpdate(prevProps, prevState) {
if (prevState.divStyle.display == 'none' && this.state.divStyle.display == 'block') {
this.enterTimer = setTimeout(() => this.sliderVal.focus(), 10);
this.enterTimer = setTimeout(() => this.sliderVal.focus(), 10);
}
if (prevProps.max !== this.props.max && this.state.inputValue > this.props.max) {
// they chose a different module
@@ -287,14 +287,14 @@ class TextInputBox extends React.Component {
}
}
/**
* Set initial state for the textbox.
* We may want to rethink this to
* Set initial state for the textbox.
* We may want to rethink this to
* try and make it a stateless component
* @returns {object} React state object with initial values set
*/
_getInitialState() {
return {
divStyle: { display:'none' },
divStyle: { display:'none' },
inputStyle: { width:'4em' },
labelStyle: { marginLeft: '.1em' },
maxLength:5,
@@ -307,7 +307,7 @@ class TextInputBox extends React.Component {
};
}
/**
*
*
* @param {string} val block or none
*/
_setDisplay(val) {
@@ -339,7 +339,7 @@ class TextInputBox extends React.Component {
}
/**
* Get the value in the text box
* @returns {number} inputValue Value of the input box
* @returns {number} inputValue Value of the input box
*/
_getValue() {
return this.state.inputValue;
@@ -348,7 +348,7 @@ class TextInputBox extends React.Component {
* Update and set limits on input box
* values depending on what user
* has selected
*
*
* @param {SyntheticEvent} event ReactJs onChange event
*/
_handleChange(event) {

View File

@@ -247,7 +247,7 @@ export class OrbisIcon extends SvgIcon {
<path d="m155.34 679.12 173.25-190.21-15.626-13.721-170.9 190.4zm31.01 31.714 202.41-169.1-16.418-14.417-198.76 170.43z"/>
<path d="m702.66 178.87-173.25 190.21 15.625 13.721 170.9-190.4zm-31.01-31.714-202.41 169.1 16.418 14.417 198.76-170.43z" />
<rect transform="matrix(-.7071 -.7071 .7071 -.7071 429.34 1036.2)" x="387.09" y="420.77" width="84.379" height="16.859" />
</g>);
</g>);
}
}
@@ -741,9 +741,9 @@ export class Modified extends SvgIcon {
*/
svg() {
return <g>
<path d="M100,5L18,52.5L18,147.5L100,195L182,147.5L182,52.5L100,5Z"/>
<path d="M100,70L74,85L74,115L100,130L126,115L126,85L100,70Z"/>
</g>;
<path d="M100,5L18,52.5L18,147.5L100,195L182,147.5L182,52.5L100,5Z"/>
<path d="M100,70L74,85L74,115L100,130L126,115L126,85L100,70Z"/>
</g>;
}
}

View File

@@ -6,7 +6,6 @@ import TranslatedComponent from './TranslatedComponent';
* Document Root Tooltip
*/
export default class Tooltip extends TranslatedComponent {
static propTypes = {
rect: PropTypes.object.isRequired,
options: PropTypes.object
@@ -127,5 +126,4 @@ export default class Tooltip extends TranslatedComponent {
</div>
</div>;
}
}

View File

@@ -6,7 +6,6 @@ import { shallowEqual } from '../utils/UtilityFunctions';
* Abstract Translated Component
*/
export default class TranslatedComponent extends React.Component {
static contextTypes = {
language: PropTypes.object.isRequired,
sizeRatio: PropTypes.number.isRequired,

View File

@@ -5,7 +5,6 @@ import PropTypes from 'prop-types';
* Unexpected Error page / block
*/
export default class ErrorDetails extends React.Component {
static contextTypes = {
route: PropTypes.object.isRequired,
language: PropTypes.object.isRequired
@@ -46,7 +45,7 @@ export default class ErrorDetails extends React.Component {
<h1>Jameson, we have a problem..</h1>
<h1><small>{error.message}</small></h1>
<br/>
{importerror ? <div>If you are attempting to import a ship from EDDI or EDMC and are seeing a 'Z_BUF_ERROR' it means that the URL has not been provided correctly. This is a common problem when using Microsoft Internet Explorer or Microsoft Edge, and you should use another browser instead.</div> : null }
{importerror ? <div>If you are attempting to import a ship from EDDI or EDMC and are seeing a 'Z_BUF_ERROR' it means that the URL has not been provided correctly. This is a common problem when using Microsoft Internet Explorer or Microsoft Edge, and you should use another browser instead.</div> : null }
<br/>
<div>Please note that this site uses Google Analytics to track performance and usage. If you are blocking cookies, for example using Ghostery, please disable blocking for this site and try again.</div>
<br/>

View File

@@ -7,7 +7,6 @@ import { shallowEqual } from '../utils/UtilityFunctions';
* Abstract/Base Page
*/
export default class Page extends React.Component {
static contextTypes = {
closeMenu: PropTypes.func.isRequired,
hideModal: PropTypes.func.isRequired,
@@ -84,5 +83,4 @@ export default class Page extends React.Component {
}
return this.renderPage();
}
}