//Action
export const setModalBody = createAction(psActions.SET_MODAL_BODY);//component
//Reducer
case psActions.SET_MODAL_BODY:
return {
...state,
showModal: true,
modalBodyContainer: action.payload />,
};
//Usage
//после выполнения action делаем проверку любого флага и setModalBody(<Любой компонент/>)
onClick={() => searchPatient.length > 0 && onSearch(searchPatient, token).then(patientFound && setModalBody(<Patient {...props} />)
const Modal = ({...}) => (
{{
//switch который смотрит на prop.bodyComponentType
//придется в Modal импортировать все возможные компоненты
sectionA: (
<SectionAComponent />
),
sectionB: (
<SectionBComponent />
),
sectionC: (
<SectionCComponent />
)
}[section]}
)
it(`handle action ${patientActions.ON_SEARCH_PATIENT_FOUND}`, ()=>{
expect(reducer(undefined,
{
type: patientActions.ON_SEARCH_PATIENT_FOUND,
payload: {
_id: "59495b1162207ae59aae19e6",
patient_ur: "12345",
patient_conf_ident: true,
patient_loc: "Test"
}
})
)
.toEqual({...defaultStates,
showModal: true,
modalBodyContainer: <PatientDetails {...{_id: "59495b1162207ae59aae19e6", patient_ur: "12345", patient_conf_ident: true, patient_loc: "Test"}}/>
})
});
modalBodyContainer={<Connect(PatientDetails) ...
.babelrc
из редюсера импорт есть. player.js мне его не нужно импортировать, пытался сделать без модулей, но не помогает `"modules": false`