Ajout d'un paramètre explicite "rules" au reducer
parent
7a965e6d99
commit
ffd65ae613
|
@ -67,6 +67,11 @@ export const updateSituation = (fieldName, value) => ({
|
|||
value
|
||||
})
|
||||
|
||||
export const updatePeriod = toPeriod => ({
|
||||
type: 'UPDATE_PERIOD',
|
||||
toPeriod
|
||||
})
|
||||
|
||||
// $FlowFixMe
|
||||
export function setExample(name, situation, dottedName) {
|
||||
return { type: 'SET_EXAMPLE', name, situation, dottedName }
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import { updatePeriod } from 'Actions/actions'
|
||||
import React from 'react'
|
||||
import { Trans } from 'react-i18next'
|
||||
import { useDispatch, useSelector } from 'react-redux'
|
||||
|
@ -12,10 +13,9 @@ export default function PeriodSwitch() {
|
|||
)
|
||||
const currentPeriod = situation.période
|
||||
let periods = ['année', 'mois']
|
||||
const updatePeriod = toPeriod => dispatch({ type: 'UPDATE_PERIOD', toPeriod })
|
||||
|
||||
if (!currentPeriod) {
|
||||
updatePeriod(defaultPeriod)
|
||||
dispatch(updatePeriod(defaultPeriod))
|
||||
}
|
||||
|
||||
return (
|
||||
|
@ -27,7 +27,7 @@ export default function PeriodSwitch() {
|
|||
name="période"
|
||||
type="radio"
|
||||
value={period}
|
||||
onChange={() => updatePeriod(period)}
|
||||
onChange={() => dispatch(updatePeriod(period))}
|
||||
checked={currentPeriod === period}
|
||||
/>
|
||||
<span>
|
||||
|
|
|
@ -135,7 +135,7 @@ function updatePeriod(situation, { toPeriod, rules }) {
|
|||
}
|
||||
}
|
||||
|
||||
function simulation(state = null, action) {
|
||||
function simulation(state = null, action, rules) {
|
||||
if (action.type === 'SET_SIMULATION') {
|
||||
const { config, url } = action
|
||||
return { config, url, hiddenControls: [], situation: {} }
|
||||
|
@ -162,7 +162,7 @@ function simulation(state = null, action) {
|
|||
...state,
|
||||
situation: updatePeriod(state.situation, {
|
||||
toPeriod: action.toPeriod,
|
||||
rules: action.rules
|
||||
rules: rules
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@ -201,26 +201,23 @@ const existingCompanyReducer = (state, action) => {
|
|||
}
|
||||
return newState
|
||||
}
|
||||
export default (state, action) => {
|
||||
// Enrich the action
|
||||
if (action.type === 'UPDATE_PERIOD') {
|
||||
action.rules = state.rules
|
||||
}
|
||||
return reduceReducers(
|
||||
existingCompanyReducer,
|
||||
storageReducer,
|
||||
|
||||
export default reduceReducers(
|
||||
existingCompanyReducer,
|
||||
storageReducer,
|
||||
(state, action) =>
|
||||
combineReducers({
|
||||
sessionId: defaultTo(Math.floor(Math.random() * 1000000000000) + ''),
|
||||
conversationSteps,
|
||||
lang,
|
||||
rules: defaultTo(null),
|
||||
simulation,
|
||||
explainedVariable,
|
||||
// We need to access the `rules` in the simulation reducer
|
||||
simulation: (a, b) => simulation(a, b, state.rules),
|
||||
previousSimulation: defaultTo(null),
|
||||
currentExample,
|
||||
situationBranch,
|
||||
activeTargetInput,
|
||||
inFranceApp: inFranceAppReducer
|
||||
})
|
||||
)(state, action)
|
||||
}
|
||||
})(state, action)
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue