diff --git a/src/web/components/conditionalRoute/ConditionalRoute.jsx b/src/web/components/conditionalRoute/ConditionalRoute.jsx new file mode 100644 index 0000000000..02524e712f --- /dev/null +++ b/src/web/components/conditionalRoute/ConditionalRoute.jsx @@ -0,0 +1,29 @@ +/* SPDX-FileCopyrightText: 2024 Greenbone AG + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +import PropTypes from 'prop-types'; + +import {Route, Redirect} from 'react-router-dom'; +import useCapabilities from 'web/hooks/useCapabilities'; + +const ConditionalRoute = ({component: Component, feature, ...rest}) => { + const capabilities = useCapabilities(); + const isEnabled = capabilities._featuresEnabled[feature]; + return ( + + isEnabled ? : + } + {...rest} + /> + ); +}; + +ConditionalRoute.propTypes = { + component: PropTypes.elementType.isRequired, + feature: PropTypes.string.isRequired, +}; + +export default ConditionalRoute;