diff --git a/.babelrc b/.babelrc index 0e2dd68..2bf895d 100644 --- a/.babelrc +++ b/.babelrc @@ -6,6 +6,7 @@ "plugins":[ "@babel/plugin-proposal-object-rest-spread", "@babel/plugin-transform-runtime", - "@babel/plugin-transform-template-literals" + "@babel/plugin-transform-template-literals", + "@babel/plugin-proposal-class-properties" ] } diff --git a/.eslintrc.json b/.eslintrc.json index 6ed2717..d1c13a8 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -4,19 +4,17 @@ "es6": true, "node": true }, - "extends": "standard", + "extends": [ + "standard", + "plugin:react/recommended" + ], "globals": { "Atomics": "readonly", "SharedArrayBuffer": "readonly" - }, - "parserOptions": { - "ecmaFeatures": { - "jsx": true - }, - "ecmaVersion": 2018, - "sourceType": "module" - }, + }, + "parser": "babel-eslint", "plugins": [ + "babel", "react" ], "rules": { diff --git a/package.json b/package.json index 20b984d..bc8a42b 100644 --- a/package.json +++ b/package.json @@ -21,18 +21,22 @@ "markdown-it": "^8.4.0", "moment": "^2.19.1", "node-sass": "^4.9.0", + "prop-types": "^15.7.2", "react": "^16.7.0", "react-dom": "^16.7.0", - "react-router-dom": "^4.1.1" + "react-router-dom": "^4.1.1", + "serialize-javascript": "^1.6.1" }, "devDependencies": { "@babel/core": "^7.2.2", + "@babel/plugin-proposal-class-properties": "^7.3.3", "@babel/plugin-proposal-object-rest-spread": "^7.2.0", "@babel/plugin-transform-runtime": "^7.2.0", "@babel/plugin-transform-template-literals": "^7.2.0", "@babel/preset-env": "^7.2.3", "@babel/preset-react": "^7.0.0", "@babel/runtime": "^7.2.0", + "babel-eslint": "^10.0.1", "babel-loader": "^8.0.5", "clean-webpack-plugin": "^0.1.19", "compression-webpack-plugin": "^1.1.11", @@ -40,6 +44,7 @@ "css-modules-require-hook": "^4.2.3", "eslint": "^5.14.0", "eslint-config-standard": "^12.0.0", + "eslint-plugin-babel": "^5.3.0", "eslint-plugin-import": "^2.16.0", "eslint-plugin-node": "^8.0.1", "eslint-plugin-promise": "^4.0.1", diff --git a/src/app-client.js b/src/app-client.js index d062208..6694f77 100644 --- a/src/app-client.js +++ b/src/app-client.js @@ -1,11 +1,11 @@ -import React from 'react'; -import {hydrate} from 'react-dom'; -import {BrowserRouter as Router} from 'react-router-dom'; -import {App} from './components'; +import React from 'react' +import { hydrate } from 'react-dom' +import { BrowserRouter as Router } from 'react-router-dom' +import { App } from './components' hydrate( , document.getElementById('root') -); +) diff --git a/src/components/About.js b/src/components/About.js index 8d14d90..3f8960a 100644 --- a/src/components/About.js +++ b/src/components/About.js @@ -1,10 +1,14 @@ -import React, {Component} from 'react'; -import {Spinner, Header} from '.'; -import '../static/stylesheets/globals.scss'; -import styles from './About.scss'; -import contentStyle from '../static/stylesheets/content.scss'; +import PropTypes from 'prop-types' +import React, { Component } from 'react' +import { Spinner, Header } from '.' +import '../static/stylesheets/globals.scss' +import contentStyle from '../static/stylesheets/content.scss' export default class About extends Component { + static propTypes = { + isLoading: PropTypes.bool.isRequired, + about: PropTypes.object.isRequired + } render () { if (this.props.isLoading) { @@ -12,13 +16,13 @@ export default class About extends Component {
- ); + ) } return (
-
-
+
+
) diff --git a/src/components/App.js b/src/components/App.js index 3fb710a..1c49409 100644 --- a/src/components/App.js +++ b/src/components/App.js @@ -1,14 +1,14 @@ import { NotFoundWrapper } from '.' import React, { Component } from 'react' import routes from '../utils/routes' -import { Route, Link, Redirect, Switch } from 'react-router-dom' +import { Route, Switch } from 'react-router-dom' export default class App extends Component { - render() { + render () { return (
- {routes.map(({ path, exact, component: C, ...rest }) => ( + {routes.map(({ path, exact, component: C, ...rest }) => (
- ); + ) } let posts = this.props.posts.map((post) => @@ -28,7 +33,7 @@ export default class Blog extends Component { return (
-
+
@@ -39,6 +44,6 @@ export default class Blog extends Component { - ); + ) } }; diff --git a/src/components/Home.js b/src/components/Home.js index 025255f..084608e 100644 --- a/src/components/Home.js +++ b/src/components/Home.js @@ -1,14 +1,13 @@ -import React, { Component } from 'react'; -import { Link } from 'react-router-dom'; -import config from '../../config.json'; -import '../static/stylesheets/globals.scss'; -import styles from './Home.scss'; +import React, { Component } from 'react' +import { Link } from 'react-router-dom' +import config from '../../config.json' +import '../static/stylesheets/globals.scss' +import styles from './Home.scss' export default class Home extends Component { - - render() { - let key = 0; - const objKeys = Object.keys(config.social); + render () { + let key = 0 + const objKeys = Object.keys(config.social) const socialLinks = objKeys.map((val) => { const link = ( @@ -16,17 +15,17 @@ export default class Home extends Component {