WIP optimize connect with redux state in preferences pages.

This commit is contained in:
Ahmed Bouhuolia
2020-05-10 23:22:36 +02:00
parent a0653674ff
commit 464c36d532
32 changed files with 403 additions and 327 deletions

View File

@@ -0,0 +1,13 @@
import { connect } from 'react-redux';
export default (mapState) => {
const mapStateToProps = (state, props) => {
const mapped = {
currencies: state.currencies.data,
currenciesList: Object.values(state.currencies.data),
};
return mapState ? mapState(mapped, state, props) : mapped;
};
return connect(mapStateToProps);
}

View File

@@ -0,0 +1,17 @@
import { connect } from 'react-redux';
import {
fetchCurrencies,
submitCurrencies,
deleteCurrency,
editCurrency,
} from 'store/currencies/currencies.actions';
export const mapDispatchToProps = (dispatch) => ({
requestFetchCurrencies: () => dispatch(fetchCurrencies({})),
requestSubmitCurrencies: (form) => dispatch(submitCurrencies({ form })),
requestEditCurrency: (id, form) => dispatch(editCurrency({ id, form })),
requestDeleteCurrency: (currency_code) => dispatch(deleteCurrency({ currency_code })),
});
export default connect(null, mapDispatchToProps);

View File

@@ -0,0 +1,16 @@
import { connect } from 'react-redux';
import {
getCurrencyById,
getCurrencyByCode,
} from 'store/currencies/currencies.selector';
const mapStateToProps = (state, props) => ({
...(props.currencyId) ? {
currency: getCurrencyById(state.currencies.data, props.currencyId),
} : (props.currencyCode) ? {
currency: getCurrencyByCode(state.currencies.data, props.currencyCode),
} : {},
});
export default connect(mapStateToProps);