CR Update: add default props to service and check service in provider

This commit is contained in:
Igor 2019-11-14 12:43:25 -03:00
parent db0f751a68
commit bdb9af5c4b
2 changed files with 28 additions and 3 deletions

View File

@ -32,7 +32,9 @@ const ModalProvider = ({ children, modal: Modal, service }) => {
* @returns void
*/
useEffect(() => {
service.setServiceImplementation({ hide, show });
if (service) {
service.setServiceImplementation({ hide, show });
}
}, [hide, service, show]);
/**
@ -78,6 +80,10 @@ const ModalProvider = ({ children, modal: Modal, service }) => {
);
};
ModalProvider.defaultProps = {
service: null,
};
ModalProvider.propTypes = {
children: PropTypes.oneOfType([
PropTypes.arrayOf(PropTypes.node),
@ -91,7 +97,7 @@ ModalProvider.propTypes = {
]).isRequired,
service: PropTypes.shape({
setServiceImplementation: PropTypes.func,
}).isRequired,
}),
};
/**

View File

@ -5,6 +5,8 @@ import React, {
useCallback,
useEffect,
} from 'react';
import PropTypes from 'prop-types';
import SnackbarContainer from '../components/snackbar/SnackbarContainer';
import SnackbarTypes from '../components/snackbar/SnackbarTypes';
@ -31,7 +33,9 @@ const SnackbarProvider = ({ children, service }) => {
* @returns void
*/
useEffect(() => {
service.setServiceImplementation({ hide, show });
if (service) {
service.setServiceImplementation({ hide, show });
}
}, [service, hide, show]);
const show = useCallback(options => {
@ -100,6 +104,21 @@ const SnackbarProvider = ({ children, service }) => {
);
};
SnackbarProvider.defaultProps = {
service: null,
};
SnackbarProvider.propTypes = {
children: PropTypes.oneOfType([
PropTypes.arrayOf(PropTypes.node),
PropTypes.node,
PropTypes.func,
]).isRequired,
service: PropTypes.shape({
setServiceImplementation: PropTypes.func,
}),
};
/**
*
* High Order Component to use the snackbar methods through a Class Component