Skip to content
This repository has been archived by the owner on Mar 23, 2019. It is now read-only.

Commit

Permalink
Fix linting errors
Browse files Browse the repository at this point in the history
  • Loading branch information
helfi92 committed Oct 15, 2018
1 parent d5d1173 commit 586435c
Show file tree
Hide file tree
Showing 92 changed files with 1,862 additions and 1,718 deletions.
79 changes: 10 additions & 69 deletions .neutrinorc.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,19 @@ module.exports = {
},
emitWarning: process.env.NODE_ENV === 'development',
baseConfig: {
extends: ['eslint-config-prettier', 'plugin:react/recommended'],
extends: ['plugin:react/recommended', 'eslint-config-prettier'],
},
envs: ['worker', 'serviceworker'],
plugins: ['prettier'],
rules: {
'no-nested-ternaries': '0',
'react/jsx-wrap-multilines': 'off',
'react/prop-types': 'off',
'react/jsx-one-expression-per-line': 'off',
'react/forbid-prop-types': 'off',
'react/prefer-stateless-function': 'off',
'react/no-access-state-in-setstate': 'off',
'react/destructuring-assignment': 'off',
'babel/no-unused-expressions': 'off',
'import/no-extraneous-dependencies': 'off',
// Specify the maximum length of a line in your program
'max-len': [
Expand All @@ -36,81 +43,15 @@ module.exports = {
'class-methods-use-this': 'off',
// Allow console during development, otherwise throw an error
'no-console': process.env.NODE_ENV === 'development' ? 'off' : 'error',
// Allow extra parentheses since multiline JSX being wrapped in parens
// is considered idiomatic
'no-extra-parens': 'off',
// Our frontend strives to adopt functional programming practices,
// so we prefer const over let
'prefer-const': 'error',
'prettier/prettier': [
'error',
{
singleQuote: true,
trailingComma: 'es5',
bracketSpacing: true,
jsxBracketSameLine: true,
jsxBracketSameLine: false,
},
],
'padding-line-between-statements': [
'error',
{
blankLine: 'always',
prev: ['const', 'let', 'var'],
next: '*',
},
{
blankLine: 'never',
prev: ['const', 'let', 'var'],
next: ['const', 'let', 'var'],
},
{
blankLine: 'always',
prev: ['cjs-import'],
next: '*',
},
{
blankLine: 'always',
prev: ['import'],
next: '*',
},
{
blankLine: 'always',
prev: '*',
next: ['cjs-export'],
},
{
blankLine: 'always',
prev: '*',
next: ['export'],
},
{
blankLine: 'never',
prev: ['import'],
next: ['import'],
},
{
blankLine: 'never',
prev: ['cjs-import'],
next: ['cjs-import'],
},
{
blankLine: 'any',
prev: ['export'],
next: ['export'],
},
{
blankLine: 'any',
prev: ['cjs-export'],
next: ['cjs-export'],
},
{ blankLine: 'always', prev: 'multiline-block-like', next: '*' },
{
blankLine: 'always',
prev: '*',
next: ['if', 'do', 'for', 'switch', 'try', 'while'],
},
{ blankLine: 'always', prev: '*', next: 'return' },
],
'consistent-return': 'off',
'no-shadow': 'off',
'no-return-assign': 'off',
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"build": "yarn create:fragment-matcher && dotenv webpack -- --mode production",
"start": "dotenv webpack-dev-server -- --mode development",
"test": "karma start --single-run",
"lint": "eslint --cache --format codeframe --ext mjs,js src test",
"lint": "eslint --cache --format codeframe --ext mjs,js,jsx src test",
"create:fragment-matcher": "node src/scripts/queryServer"
},
"dependencies": {
Expand Down
57 changes: 31 additions & 26 deletions src/App/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,37 +24,17 @@ const AUTH_STORE = '@@TASKCLUSTER_WEB_AUTH';

@hot(module)
export default class App extends Component {
authorize = async (user, persist = true) => {
if (persist) {
localStorage.setItem(AUTH_STORE, JSON.stringify(user));
}

this.setState({
auth: {
...this.state.auth,
user,
},
});
};

unauthorize = () => {
localStorage.removeItem(AUTH_STORE);
this.setState({
auth: {
...this.state.auth,
user: null,
},
});
};

fragmentMatcher = new IntrospectionFragmentMatcher({
introspectionQueryResultData,
});

cache = new InMemoryCache({ fragmentMatcher: this.fragmentMatcher });

persistence = new CachePersistor({
cache: this.cache,
storage,
});

apolloClient = new ApolloClient({
cache: this.cache,
link: from([
Expand Down Expand Up @@ -105,9 +85,30 @@ export default class App extends Component {
this.state = state;
}

componentDidCatch(error) {
this.setState({ error });
}
authorize = async (user, persist = true) => {
if (persist) {
localStorage.setItem(AUTH_STORE, JSON.stringify(user));
}

this.setState({
auth: {
// eslint-disable-next-line react/no-access-state-in-setstate
...this.state.auth,
user,
},
});
};

unauthorize = () => {
localStorage.removeItem(AUTH_STORE);
this.setState({
auth: {
// eslint-disable-next-line react/no-access-state-in-setstate
...this.state.auth,
user: null,
},
});
};

toggleTheme = () => {
this.setState({
Expand All @@ -118,6 +119,10 @@ export default class App extends Component {
});
};

componentDidCatch(error) {
this.setState({ error });
}

render() {
const { auth, error, theme } = this.state;

Expand Down
17 changes: 9 additions & 8 deletions src/components/AwsProvisionerErrorsTable/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -38,13 +38,6 @@ export default class AwsProvisionerErrorsTable extends Component {
sortDirection: null,
};

handleHeaderClick = sortBy => {
const toggled = this.state.sortDirection === 'desc' ? 'asc' : 'desc';
const sortDirection = this.state.sortBy === sortBy ? toggled : 'desc';

this.setState({ sortBy, sortDirection });
};

createSortedErrors = memoize(
(errors, sortBy, sortDirection) => {
const sortByProperty = camelCase(sortBy);
Expand All @@ -71,6 +64,13 @@ export default class AwsProvisionerErrorsTable extends Component {
}
);

handleHeaderClick = sortBy => {
const toggled = this.state.sortDirection === 'desc' ? 'asc' : 'desc';
const sortDirection = this.state.sortBy === sortBy ? toggled : 'desc';

this.setState({ sortBy, sortDirection });
};

render() {
const { errors } = this.props;
const { sortBy, sortDirection } = this.state;
Expand All @@ -97,7 +97,8 @@ export default class AwsProvisionerErrorsTable extends Component {
<TableRow
key={`${error.az}-${error.instanceType}-${error.type}-${
error.time
}`}>
}`}
>
<TableCell>
<Typography>{error.az}</Typography>
</TableCell>
Expand Down
33 changes: 18 additions & 15 deletions src/components/AwsProvisionerHealthTable/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -54,13 +54,6 @@ export default class AwsProvisionerHealthTable extends Component {
drawerOpen: false,
};

handleHeaderClick = sortBy => {
const toggled = this.state.sortDirection === 'desc' ? 'asc' : 'desc';
const sortDirection = this.state.sortBy === sortBy ? toggled : 'desc';

this.setState({ sortBy, sortDirection });
};

createSortedHealth = memoize(
(healthData, sortBy, sortDirection) => {
const healthSummary = {};
Expand Down Expand Up @@ -126,6 +119,13 @@ export default class AwsProvisionerHealthTable extends Component {
}
);

handleDrawerClose = () => {
this.setState({
drawerOpen: false,
drawerItem: null,
});
};

handleDrawerOpen = (healthItem, columnName) => {
this.setState({
drawerOpen: true,
Expand All @@ -136,11 +136,11 @@ export default class AwsProvisionerHealthTable extends Component {
});
};

handleDrawerClose = () => {
this.setState({
drawerOpen: false,
drawerItem: null,
});
handleHeaderClick = sortBy => {
const toggled = this.state.sortDirection === 'desc' ? 'asc' : 'desc';
const sortDirection = this.state.sortBy === sortBy ? toggled : 'desc';

this.setState({ sortBy, sortDirection });
};

render() {
Expand Down Expand Up @@ -182,7 +182,8 @@ export default class AwsProvisionerHealthTable extends Component {
<TableCellListItem
button
dense
onClick={() => this.handleDrawerOpen(item, 'Healthy')}>
onClick={() => this.handleDrawerOpen(item, 'Healthy')}
>
<ListItemText primary={or0(item.healthy)} />
<InformationVariantIcon size={iconSize} />
</TableCellListItem>
Expand All @@ -191,7 +192,8 @@ export default class AwsProvisionerHealthTable extends Component {
<TableCellListItem
button
dense
onClick={() => this.handleDrawerOpen(item, 'Unhealthy')}>
onClick={() => this.handleDrawerOpen(item, 'Unhealthy')}
>
<ListItemText primary={or0(item.unhealthy)} />
<InformationVariantIcon size={iconSize} />
</TableCellListItem>
Expand All @@ -202,7 +204,8 @@ export default class AwsProvisionerHealthTable extends Component {
<Drawer
anchor="right"
open={drawerOpen}
onClose={this.handleDrawerClose}>
onClose={this.handleDrawerClose}
>
<div className={classes.drawerContainer}>
<Typography variant="h5" className={classes.headline}>
{drawerItem && drawerItem.columnName}
Expand Down
70 changes: 35 additions & 35 deletions src/components/AwsProvisionerWorkerTypeStatus/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,41 +39,6 @@ export default class AwsProvisionerWorkerTypeStatus extends Component {
sortDirection: null,
};

handleHeaderClick = sortBy => {
const toggled = this.state.sortDirection === 'desc' ? 'asc' : 'desc';
const sortDirection = this.state.sortBy === sortBy ? toggled : 'desc';

this.setState({ sortBy, sortDirection });
};

createSortedStatuses = memoize(
(statuses, sortBy, sortDirection) => {
if (!statuses) {
return null;
}

return [...statuses].sort((a, b) => {
const firstElement =
sortDirection === 'desc'
? this.valueFromNode(b)
: this.valueFromNode(a);
const secondElement =
sortDirection === 'desc'
? this.valueFromNode(a)
: this.valueFromNode(b);

return sort(firstElement, secondElement);
});
},
{
serializer: ([statuses, sortBy, sortDirection]) => {
const ids = sorted(statuses);

return `${ids.join('-')}-${sortBy}-${sortDirection}`;
},
}
);

createItems = memoize(
(workerType, awsState, availabilityZones) => {
if (!availabilityZones.length) {
Expand Down Expand Up @@ -119,6 +84,41 @@ export default class AwsProvisionerWorkerTypeStatus extends Component {
}
);

createSortedStatuses = memoize(
(statuses, sortBy, sortDirection) => {
if (!statuses) {
return null;
}

return [...statuses].sort((a, b) => {
const firstElement =
sortDirection === 'desc'
? this.valueFromNode(b)
: this.valueFromNode(a);
const secondElement =
sortDirection === 'desc'
? this.valueFromNode(a)
: this.valueFromNode(b);

return sort(firstElement, secondElement);
});
},
{
serializer: ([statuses, sortBy, sortDirection]) => {
const ids = sorted(statuses);

return `${ids.join('-')}-${sortBy}-${sortDirection}`;
},
}
);

handleHeaderClick = sortBy => {
const toggled = this.state.sortDirection === 'desc' ? 'asc' : 'desc';
const sortDirection = this.state.sortBy === sortBy ? toggled : 'desc';

this.setState({ sortBy, sortDirection });
};

valueFromNode(item) {
const mapping = {
'Instance Type': item.instanceType,
Expand Down

0 comments on commit 586435c

Please sign in to comment.