diff --git a/.eslintrc b/.eslintrc
index cb9e01d5..2bc1ff9a 100644
--- a/.eslintrc
+++ b/.eslintrc
@@ -23,6 +23,7 @@
},
"rules": {
+ "arrow-body-style": ["error", "as-needed"],
"arrow-parens": "error",
"arrow-spacing": "error",
"block-scoped-var": "warn",
diff --git a/js/actionCreators.js b/js/actionCreators.js
index d0f473e7..28ece710 100644
--- a/js/actionCreators.js
+++ b/js/actionCreators.js
@@ -89,14 +89,12 @@ export function toggleShuffle(mediaPlayer) {
export function setSkinFromFile(skinFile) {
return (dispatch) => {
dispatch({type: 'START_LOADING'});
- skinParser(skinFile).then((skinData) => {
- return dispatch({
- type: 'SET_SKIN_DATA',
- skinImages: skinData.images,
- skinColors: skinData.colors,
- skinPlaylistStyle: skinData.playlistStyle
- });
- });
+ skinParser(skinFile).then((skinData) => dispatch({
+ type: 'SET_SKIN_DATA',
+ skinImages: skinData.images,
+ skinColors: skinData.colors,
+ skinPlaylistStyle: skinData.playlistStyle
+ }));
};
}
@@ -117,13 +115,11 @@ export function openFileDialog(winamp) {
export function setEqBand(mediaPlayer, band, value) {
mediaPlayer.setEqBand(band, value);
- return (dispatch) => {
- return dispatch({
- type: 'SET_BAND_VALUE',
- band,
- value
- });
- };
+ return (dispatch) => dispatch({
+ type: 'SET_BAND_VALUE',
+ band,
+ value
+ });
}
function _setEqTo(mediaPlayer, value) {
@@ -154,11 +150,9 @@ export function setEqToMin(mediaPlayer) {
export function setPreamp(mediaPlayer, value) {
mediaPlayer.setPreamp(value);
- return (dispatch) => {
- return dispatch({
- type: 'SET_BAND_VALUE',
- band: 'preamp',
- value
- });
- };
+ return (dispatch) => dispatch({
+ type: 'SET_BAND_VALUE',
+ band: 'preamp',
+ value
+ });
}
diff --git a/js/components/CharacterString.jsx b/js/components/CharacterString.jsx
index 799ca8e7..9419d762 100644
--- a/js/components/CharacterString.jsx
+++ b/js/components/CharacterString.jsx
@@ -5,9 +5,7 @@ module.exports = (props) => {
const text = `${props.children}`;
const chars = text.split('');
return
- {chars.map((character, index) => {
- return {character};
- })};
+ {chars.map((character, index) => {character})};
;
};
diff --git a/js/components/EqualizerWindow.jsx b/js/components/EqualizerWindow.jsx
index 4f9827c0..9cda7042 100644
--- a/js/components/EqualizerWindow.jsx
+++ b/js/components/EqualizerWindow.jsx
@@ -18,9 +18,7 @@ import EqGraph from './EqGraph.jsx';
import '../../css/equalizer-window.css';
-const bandClassName = (band) => {
- return `band-${band}`;
-};
+const bandClassName = (band) => `band-${band}`;
class EqualizerWindow extends React.Component {
constructor(props) {
diff --git a/js/components/Kbps.jsx b/js/components/Kbps.jsx
index 5f986501..30f332f0 100644
--- a/js/components/Kbps.jsx
+++ b/js/components/Kbps.jsx
@@ -4,10 +4,8 @@ import {connect} from 'react-redux';
import CharacterString from './CharacterString.jsx';
-const Kbps = (props) => {
- return
- {props.kbps}
- ;
-};
+const Kbps = (props) =>
+ {props.kbps}
+;
module.exports = connect((state) => state.media)(Kbps);
diff --git a/js/components/Khz.jsx b/js/components/Khz.jsx
index ac29eeae..d1249c9e 100644
--- a/js/components/Khz.jsx
+++ b/js/components/Khz.jsx
@@ -4,10 +4,8 @@ import {connect} from 'react-redux';
import CharacterString from './CharacterString.jsx';
-const Khz = (props) => {
- return
- {props.khz}
- ;
-};
+const Khz = (props) =>
+ {props.khz}
+;
module.exports = connect((state) => state.media)(Khz);
diff --git a/js/components/Marquee.jsx b/js/components/Marquee.jsx
index 390350e1..2556650f 100644
--- a/js/components/Marquee.jsx
+++ b/js/components/Marquee.jsx
@@ -20,13 +20,9 @@ const getPositionText = (duration, seekToPercent) => {
return `Seek to: ${newElapsedStr}/${durationStr} (${seekToPercent}%)`;
};
-const getMediaText = (name, duration) => {
- return `${name} (${getTimeStr(duration)}) *** `;
-};
+const getMediaText = (name, duration) => `${name} (${getTimeStr(duration)}) *** `;
-const getDoubleSizeModeText = (enabled) => {
- return `${enabled ? 'Disable' : 'Enable'} doublesize mode`;
-};
+const getDoubleSizeModeText = (enabled) => `${enabled ? 'Disable' : 'Enable'} doublesize mode`;
const isLong = (text) => text.length > 30;
diff --git a/js/components/MonoStereo.jsx b/js/components/MonoStereo.jsx
index 45bf7079..8fe4557c 100644
--- a/js/components/MonoStereo.jsx
+++ b/js/components/MonoStereo.jsx
@@ -3,11 +3,9 @@ import {connect} from 'react-redux';
import classnames from 'classnames';
-const MonoStereo = (props) => {
- return ;
-};
+const MonoStereo = (props) => ;
module.exports = connect((state) => state.media)(MonoStereo);
diff --git a/js/components/Skin.jsx b/js/components/Skin.jsx
index 7fc8597d..bb65fe2d 100644
--- a/js/components/Skin.jsx
+++ b/js/components/Skin.jsx
@@ -145,9 +145,7 @@ Object.keys(FONT_LOOKUP).forEach((character) => {
});
-const numExIsUsed = (skinImages) => {
- return !!skinImages.DIGIT_0_EX;
-};
+const numExIsUsed = (skinImages) => !!skinImages.DIGIT_0_EX;
const Skin = (props) => {
if (!props.skinImages) {
diff --git a/js/skinParser.js b/js/skinParser.js
index 68a23231..0defa820 100644
--- a/js/skinParser.js
+++ b/js/skinParser.js
@@ -2,16 +2,12 @@ import SKIN_SPRITES from './skinSprites';
import JSZip from '../node_modules/jszip/dist/jszip'; // Hack
import {parseViscolors, parseIni} from './utils';
-const bmpUriFromFile = (file) => {
- return `data:image/bmp;base64,${btoa(file.asBinary())}`;
-};
+const bmpUriFromFile = (file) => `data:image/bmp;base64,${btoa(file.asBinary())}`;
// "Promisify" processBuffer
-const getBufferFromFile = (file) => {
- return new Promise((resolve) => {
- file.processBuffer(resolve);
- });
-};
+const getBufferFromFile = (file) => new Promise((resolve) => {
+ file.processBuffer(resolve);
+});
const getZipFromBuffer = (buffer) => new JSZip(buffer);
@@ -24,59 +20,51 @@ const getSpriteSheetFilesFromZip = (zip) => {
};
// Extract the CSS rules for a given file, and add them to the object
-const extractCss = (spriteObj) => {
- return new Promise((resolve) => {
- const uri = bmpUriFromFile(spriteObj.file);
- const img = new Image();
+const extractCss = (spriteObj) => new Promise((resolve) => {
+ const uri = bmpUriFromFile(spriteObj.file);
+ const img = new Image();
- img.onload = () => {
- const canvas = document.createElement('canvas');
- const images = {};
- spriteObj.sprites.forEach((sprite) => {
- canvas.height = sprite.height;
- canvas.width = sprite.width;
+ img.onload = () => {
+ const canvas = document.createElement('canvas');
+ const images = {};
+ spriteObj.sprites.forEach((sprite) => {
+ canvas.height = sprite.height;
+ canvas.width = sprite.width;
- const context = canvas.getContext('2d');
- context.drawImage(img, -sprite.x, -sprite.y);
- const image = canvas.toDataURL();
- if (sprite.name) {
- images[sprite.name] = image;
- }
- });
- resolve({...spriteObj, images});
- };
- img.src = uri;
- });
-};
+ const context = canvas.getContext('2d');
+ context.drawImage(img, -sprite.x, -sprite.y);
+ const image = canvas.toDataURL();
+ if (sprite.name) {
+ images[sprite.name] = image;
+ }
+ });
+ resolve({...spriteObj, images});
+ };
+ img.src = uri;
+});
// Extract the color data from a VISCOLOR.TXT file and add it to the object
-const extractColors = (spriteObj) => {
- return {
- ...spriteObj,
- colors: parseViscolors(spriteObj.file.asText())
- };
-};
+const extractColors = (spriteObj) => ({
+ ...spriteObj,
+ colors: parseViscolors(spriteObj.file.asText())
+});
// Extract the color data from a VISCOLOR.TXT file and add it to the object
-const extractPlaylistStyle = (spriteObj) => {
- return {
- ...spriteObj,
- playlistStyle: parseIni(spriteObj.file.asText())
- };
-};
+const extractPlaylistStyle = (spriteObj) => ({
+ ...spriteObj,
+ playlistStyle: parseIni(spriteObj.file.asText())
+});
-const getSkinDataFromFiles = (spriteObjs) => {
- return Promise.all(spriteObjs.map((spriteObj) => {
- switch (spriteObj.name) {
- case 'VISCOLOR':
- return extractColors(spriteObj);
- case 'PLEDIT.TXT':
- return extractPlaylistStyle(spriteObj);
- default:
- return extractCss(spriteObj);
- }
- }));
-};
+const getSkinDataFromFiles = (spriteObjs) => Promise.all(spriteObjs.map((spriteObj) => {
+ switch (spriteObj.name) {
+ case 'VISCOLOR':
+ return extractColors(spriteObj);
+ case 'PLEDIT.TXT':
+ return extractPlaylistStyle(spriteObj);
+ default:
+ return extractCss(spriteObj);
+ }
+}));
const collectCssAndColors = (spriteObjs) => {
let images = {};
@@ -102,12 +90,10 @@ const collectCssAndColors = (spriteObjs) => {
};
// A promise that, given a File object, returns a skin style object
-const parseSkin = (file) => {
- return getBufferFromFile(file)
+const parseSkin = (file) => getBufferFromFile(file)
.then(getZipFromBuffer)
.then(getSpriteSheetFilesFromZip)
.then(getSkinDataFromFiles)
.then(collectCssAndColors);
-};
module.exports = parseSkin;
diff --git a/js/snapUtils.js b/js/snapUtils.js
index f88986ca..f9a591ed 100644
--- a/js/snapUtils.js
+++ b/js/snapUtils.js
@@ -10,14 +10,10 @@ export const right = (box) => box.x + box.width;
export const near = (a, b) => Math.abs(a - b) < SNAP_DISTANCE;
// http://stackoverflow.com/a/3269471/1263117
-export const overlapX = (a, b) => {
- return left(a) <= right(b) + SNAP_DISTANCE &&
+export const overlapX = (a, b) => left(a) <= right(b) + SNAP_DISTANCE &&
left(b) <= right(a) + SNAP_DISTANCE;
-};
-export const overlapY = (a, b) => {
- return top(a) <= bottom(b) + SNAP_DISTANCE &&
+export const overlapY = (a, b) => top(a) <= bottom(b) + SNAP_DISTANCE &&
top(b) <= bottom(a) + SNAP_DISTANCE;
-};
export const snap = (boxA, boxB) => {
let x, y;
diff --git a/js/utils.js b/js/utils.js
index 020801a9..5d1f34f0 100644
--- a/js/utils.js
+++ b/js/utils.js
@@ -52,9 +52,7 @@ const parseIni = (text) => {
return data;
};
-const clamp = (value, min, max) => {
- return Math.min(Math.max(value, min), max);
-};
+const clamp = (value, min, max) => Math.min(Math.max(value, min), max);
module.exports = {
getTimeObj,