formatting and linting
This commit is contained in:
committed by
Mrugesh Mohapatra
parent
9ca50d56a8
commit
a083334079
@ -6,11 +6,7 @@ import { createStore } from './src/redux/store';
|
||||
export const wrapRootElement = ({ element }) => {
|
||||
const store = createStore();
|
||||
|
||||
const ConnectedRootElement = (
|
||||
<Provider store={store}>
|
||||
{element}
|
||||
</Provider>
|
||||
);
|
||||
const ConnectedRootElement = <Provider store={store}>{element}</Provider>;
|
||||
|
||||
return ConnectedRootElement;
|
||||
};
|
||||
|
@ -107,18 +107,19 @@ const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin');
|
||||
exports.onCreateWebpackConfig = ({ stage, rules, plugins, actions }) => {
|
||||
actions.setWebpackConfig({
|
||||
module: {
|
||||
rules: [rules.js({
|
||||
/* eslint-disable max-len */
|
||||
exclude: modulePath => {
|
||||
return (
|
||||
/node_modules/.test(modulePath) &&
|
||||
!(/(ansi-styles|chalk|strict-uri-encode|react-freecodecamp-search)/).test(
|
||||
modulePath
|
||||
)
|
||||
);
|
||||
}
|
||||
/* eslint-enable max-len*/
|
||||
})
|
||||
rules: [
|
||||
rules.js({
|
||||
/* eslint-disable max-len */
|
||||
exclude: modulePath => {
|
||||
return (
|
||||
/node_modules/.test(modulePath) &&
|
||||
!(/(ansi-styles|chalk|strict-uri-encode|react-freecodecamp-search)/).test(
|
||||
modulePath
|
||||
)
|
||||
);
|
||||
}
|
||||
/* eslint-enable max-len*/
|
||||
})
|
||||
]
|
||||
},
|
||||
node: {
|
||||
@ -136,9 +137,7 @@ exports.onCreateWebpackConfig = ({ stage, rules, plugins, actions }) => {
|
||||
});
|
||||
if (stage !== 'build-html') {
|
||||
actions.setWebpackConfig({
|
||||
plugins: [
|
||||
new MonacoWebpackPlugin()
|
||||
]
|
||||
plugins: [new MonacoWebpackPlugin()]
|
||||
});
|
||||
}
|
||||
if (stage === 'build-html') {
|
||||
|
@ -6,10 +6,7 @@ import headComponents from './src/head';
|
||||
|
||||
import { createStore } from './src/redux/store';
|
||||
|
||||
export const replaceRenderer = ({
|
||||
bodyComponent,
|
||||
replaceBodyHTMLString
|
||||
}) => {
|
||||
export const replaceRenderer = ({ bodyComponent, replaceBodyHTMLString }) => {
|
||||
const store = createStore();
|
||||
|
||||
const ConnectedBody = () => (
|
||||
|
@ -1,18 +1,15 @@
|
||||
/* eslint-disable */
|
||||
import React from 'react';
|
||||
|
||||
export default (props) => {
|
||||
export default props => {
|
||||
const { width = '100%', height = '100%' } = props;
|
||||
const fixedWidth = width.toString().indexOf('%') !== -1 ?
|
||||
width : `${width}px`;
|
||||
const fixedHeight = height.toString().indexOf('%') !== -1 ?
|
||||
height : `${height}px`;
|
||||
const fixedWidth =
|
||||
width.toString().indexOf('%') !== -1 ? width : `${width}px`;
|
||||
const fixedHeight =
|
||||
height.toString().indexOf('%') !== -1 ? height : `${height}px`;
|
||||
const style = {
|
||||
width: fixedWidth,
|
||||
height: fixedHeight
|
||||
}; return (
|
||||
<div
|
||||
style={style}
|
||||
className="react-monaco-editor-container" />
|
||||
);
|
||||
}
|
||||
};
|
||||
return <div style={style} className="react-monaco-editor-container" />;
|
||||
};
|
||||
|
@ -1,8 +1,7 @@
|
||||
import React from 'react';
|
||||
|
||||
const cdnAddr =
|
||||
'https://cdnjs.cloudflare.com/ajax/libs/sass.js/' +
|
||||
'0.10.9/sass.sync.min.js';
|
||||
'https://cdnjs.cloudflare.com/ajax/libs/sass.js/0.10.9/sass.sync.min.js';
|
||||
|
||||
const sassjs = [<script key='sassjs' src={cdnAddr} type='text/javascript' />];
|
||||
|
||||
|
@ -1,3 +1,6 @@
|
||||
/* eslint-disable-next-line max-len */
|
||||
import { composeWithDevTools } from 'redux-devtools-extension/logOnlyInProduction';
|
||||
|
||||
import {
|
||||
createStore as reduxCreateStore,
|
||||
combineReducers,
|
||||
@ -6,9 +9,6 @@ import {
|
||||
import { combineEpics, createEpicMiddleware } from 'redux-observable';
|
||||
|
||||
import { reducer as formReducer } from 'redux-form';
|
||||
import {
|
||||
composeWithDevTools
|
||||
} from 'redux-devtools-extension/logOnlyInProduction';
|
||||
|
||||
import { reducer as app, epics as appEpics } from './app';
|
||||
import {
|
||||
@ -50,6 +50,5 @@ const composeEnhancers = composeWithDevTools({
|
||||
export const createStore = () =>
|
||||
reduxCreateStore(
|
||||
rootReducer,
|
||||
composeEnhancers(
|
||||
applyMiddleware(epicMiddleware)
|
||||
));
|
||||
composeEnhancers(applyMiddleware(epicMiddleware))
|
||||
);
|
||||
|
@ -76,10 +76,13 @@ export class CompletionModal extends PureComponent {
|
||||
const showDownloadButton = Object.keys(files).length;
|
||||
const filesForDownload = Object.keys(files)
|
||||
.map(key => files[key])
|
||||
.reduce((allFiles, { path, contents }) => ({
|
||||
...allFiles,
|
||||
[path]: contents
|
||||
}), {});
|
||||
.reduce(
|
||||
(allFiles, { path, contents }) => ({
|
||||
...allFiles,
|
||||
[path]: contents
|
||||
}),
|
||||
{}
|
||||
);
|
||||
const dashedName = dasherize(title);
|
||||
return (
|
||||
<Modal
|
||||
@ -111,21 +114,20 @@ export class CompletionModal extends PureComponent {
|
||||
>
|
||||
Submit and go to next challenge (Ctrl + Enter)
|
||||
</Button>
|
||||
{showDownloadButton
|
||||
? <Button
|
||||
block={true}
|
||||
bsSize='lg'
|
||||
bsStyle='primary'
|
||||
className='btn-primary-invert'
|
||||
download={`${dashedName}.json`}
|
||||
href={`data:text/json;charset=utf-8,${encodeURIComponent(
|
||||
JSON.stringify(filesForDownload)
|
||||
)}`}
|
||||
>
|
||||
Download my solution
|
||||
</Button>
|
||||
: null
|
||||
}
|
||||
{showDownloadButton ? (
|
||||
<Button
|
||||
block={true}
|
||||
bsSize='lg'
|
||||
bsStyle='primary'
|
||||
className='btn-primary-invert'
|
||||
download={`${dashedName}.json`}
|
||||
href={`data:text/json;charset=utf-8,${encodeURIComponent(
|
||||
JSON.stringify(filesForDownload)
|
||||
)}`}
|
||||
>
|
||||
Download my solution
|
||||
</Button>
|
||||
) : null}
|
||||
</Modal.Footer>
|
||||
</Modal>
|
||||
);
|
||||
|
@ -52,14 +52,20 @@ export class SidePanel extends PureComponent {
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
MathJax.Hub.Queue(['Typeset', MathJax.Hub,
|
||||
document.querySelector('.rosetta-code')]);
|
||||
MathJax.Hub.Queue([
|
||||
'Typeset',
|
||||
MathJax.Hub,
|
||||
document.querySelector('.rosetta-code')
|
||||
]);
|
||||
this.props.initConsole('');
|
||||
}
|
||||
|
||||
componentDidUpdate(prevProps) {
|
||||
MathJax.Hub.Queue(['Typeset', MathJax.Hub,
|
||||
document.querySelector('.rosetta-code')]);
|
||||
MathJax.Hub.Queue([
|
||||
'Typeset',
|
||||
MathJax.Hub,
|
||||
document.querySelector('.rosetta-code')
|
||||
]);
|
||||
const { title, initConsole } = this.props;
|
||||
if (title !== prevProps.title) {
|
||||
initConsole('');
|
||||
|
@ -92,20 +92,23 @@ const htmlSassTransformCode = file => {
|
||||
let doc = document.implementation.createHTMLDocument();
|
||||
doc.body.innerHTML = file.contents;
|
||||
let styleTags = [].filter.call(
|
||||
doc.querySelectorAll('style'),
|
||||
style => style.type === 'text/sass'
|
||||
doc.querySelectorAll('style'),
|
||||
style => style.type === 'text/sass'
|
||||
);
|
||||
if (styleTags.length === 0 || typeof Sass === 'undefined') {
|
||||
return vinyl.transformContents(() => doc.body.innerHTML, file);
|
||||
}
|
||||
return styleTags.reduce((obs, style) => {
|
||||
return obs.flatMap(file => new Promise(resolve => {
|
||||
window.Sass.compile(style.innerHTML, function(result) {
|
||||
style.type = 'text/css';
|
||||
style.innerHTML = result.text;
|
||||
resolve(vinyl.transformContents(() => doc.body.innerHTML, file));
|
||||
});
|
||||
}));
|
||||
return obs.flatMap(
|
||||
file =>
|
||||
new Promise(resolve => {
|
||||
window.Sass.compile(style.innerHTML, function(result) {
|
||||
style.type = 'text/css';
|
||||
style.innerHTML = result.text;
|
||||
resolve(vinyl.transformContents(() => doc.body.innerHTML, file));
|
||||
});
|
||||
})
|
||||
);
|
||||
}, Observable.of(file));
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user