From bdb9af5c4bc8163b63cabdcea9b5416cf0063d99 Mon Sep 17 00:00:00 2001 From: Igor Date: Thu, 14 Nov 2019 12:43:25 -0300 Subject: [PATCH] CR Update: add default props to service and check service in provider --- platform/ui/src/utils/ModalProvider.js | 10 ++++++++-- platform/ui/src/utils/SnackbarProvider.js | 21 ++++++++++++++++++++- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/platform/ui/src/utils/ModalProvider.js b/platform/ui/src/utils/ModalProvider.js index 0378faa75..13185dae2 100644 --- a/platform/ui/src/utils/ModalProvider.js +++ b/platform/ui/src/utils/ModalProvider.js @@ -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, + }), }; /** diff --git a/platform/ui/src/utils/SnackbarProvider.js b/platform/ui/src/utils/SnackbarProvider.js index ed603003c..2ce39dc37 100644 --- a/platform/ui/src/utils/SnackbarProvider.js +++ b/platform/ui/src/utils/SnackbarProvider.js @@ -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