Skip to content

Commit

Permalink
🔥 fusionne les deux fichiers entry.prod et entry.dev dans un seul fic…
Browse files Browse the repository at this point in the history
…hier

On veut éviter de se répeter (DRY)
  • Loading branch information
Johan Girod committed May 24, 2018
1 parent e1a4170 commit 22e51c5
Show file tree
Hide file tree
Showing 4 changed files with 84 additions and 117 deletions.
1 change: 0 additions & 1 deletion source/components/rule/Algorithm.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ export default class Algorithm extends React.Component {
).targets
)
: displayedRule
console.log(rule)

return (
<div id="algorithm">
Expand Down
64 changes: 0 additions & 64 deletions source/entry.dev.js

This file was deleted.

87 changes: 84 additions & 3 deletions source/entry.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,84 @@
if (process.env.NODE_ENV === 'production')
module.exports = require('./entry.prod')
else module.exports = require('./entry.dev')
/* global process: false */

import ReactPiwik from 'Components/Tracker'
import { rules, rulesFr } from 'Engine/rules'
import React from 'react'
import { render } from 'react-dom'
import { AppContainer } from 'react-hot-loader'
import { Provider } from 'react-redux'
import { applyMiddleware, compose, createStore } from 'redux'
import DevTools from './DevTools'
import computeThemeColours from './components/themeColours'
import Layout from './containers/Layout'
import lang from './i18n'
import debounceFormChangeActions from './middlewares/debounceFormChangeActions'
import trackDomainActions from './middlewares/trackDomainActions'
import reducers from './reducers/reducers'
import {
persistSimulation,
retrievePersistedSimulation
} from './storage/persist'
import { getIframeOption, getUrl } from './utils'

let tracker = {
push: console.log,
connectToHistory: history => history
}
if (process.env.NODE_ENV === 'production') {
tracker = new ReactPiwik({
url: 'stats.data.gouv.fr',
siteId: 39,
trackErrors: true
})
}
if (process.env.NODE_ENV === 'production') {
let integratorUrl = getIframeOption('integratorUrl')
ReactPiwik.push([
'setCustomVariable',
1,
'urlPartenaire',
decodeURIComponent(integratorUrl || 'https://embauche.beta.gouv.fr'),
'visit'
])
}

let initialStore = {
iframe: getUrl().includes('iframe'),
themeColours: computeThemeColours(getIframeOption('couleur')),
previousSimulation: retrievePersistedSimulation()
}

let enhancer = compose(
process.env.NODE_ENV !== 'production'
? DevTools.instrument({ maxAge: 10 })
: x => x,
applyMiddleware(debounceFormChangeActions(), trackDomainActions(tracker))
)

let initialRules = lang == 'en' ? rules : rulesFr
let store = createStore(reducers(initialRules), initialStore, enhancer)
let anchor = document.querySelector('#js')
persistSimulation(store)

let App = ({ store }) => (
<Provider store={store}>
<>
<Layout tracker={tracker} />
{process.env.NODE_ENV !== 'production' && <DevTools />}
</>
</Provider>
)

render(<App store={store} />, anchor)

if (process.env.NODE_ENV !== 'production' && module.hot) {
module.hot.accept('./containers/Layout', () => {
render(
<AppContainer>
<App store={store} />
</AppContainer>,
anchor
)
})
}
export { anchor }
49 changes: 0 additions & 49 deletions source/entry.prod.js

This file was deleted.

0 comments on commit 22e51c5

Please sign in to comment.