From b66a7c8808f1763b9d2e630929d5074539e15ec5 Mon Sep 17 00:00:00 2001 From: Martin Marosi Date: Tue, 18 Jun 2024 10:10:22 +0200 Subject: [PATCH] Hide OpenShift VA behind a feature flag. --- src/components/RootApp/ScalprumRoot.test.js | 2 ++ src/components/Routes/VirtualAssistant.tsx | 20 +++++++++++--------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/components/RootApp/ScalprumRoot.test.js b/src/components/RootApp/ScalprumRoot.test.js index 4f3aaa72c..a2f8ea475 100644 --- a/src/components/RootApp/ScalprumRoot.test.js +++ b/src/components/RootApp/ScalprumRoot.test.js @@ -38,6 +38,7 @@ jest.mock('@unleash/proxy-client-react', () => { ...unleash, useFlag: () => false, useFlagsStatus: () => ({ flagsReady: true }), + useFlags: () => [], }; }); @@ -54,6 +55,7 @@ import { initializeVisibilityFunctions } from '../../utils/VisibilitySingleton'; import ChromeAuthContext from '../../auth/ChromeAuthContext'; import { useHydrateAtoms } from 'jotai/utils'; import { activeModuleAtom } from '../../state/atoms/activeModuleAtom'; +import { useFlags } from '@unleash/proxy-client-react'; const HydrateAtoms = ({ initialValues, children }) => { useHydrateAtoms(initialValues); diff --git a/src/components/Routes/VirtualAssistant.tsx b/src/components/Routes/VirtualAssistant.tsx index beca6ddb7..caa020579 100644 --- a/src/components/Routes/VirtualAssistant.tsx +++ b/src/components/Routes/VirtualAssistant.tsx @@ -1,20 +1,22 @@ import React, { Fragment } from 'react'; import { Route, Routes } from 'react-router-dom'; import { ScalprumComponent } from '@scalprum/react-core'; +import { useFlags } from '@unleash/proxy-client-react'; import './virtual-assistant.scss'; -const viableRoutes = [ - '/', - '/insights/*', - '/settings/*', - '/subscriptions/overview/*', - '/subscriptions/inventory/*', - '/subscriptions/usage/*', - '/openshift/insights/*', -]; +const flaggedRoutes: { [flagName: string]: string } = { 'platform.va.openshift.insights': '/openshift/insights/*' }; const VirtualAssistant = () => { + const viableRoutes = ['/', '/insights/*', '/settings/*', '/subscriptions/overview/*', '/subscriptions/inventory/*', '/subscriptions/usage/*']; + + const allFlags = useFlags(); + allFlags.forEach((flag) => { + if (flaggedRoutes[flag.name] && flag.enabled) { + viableRoutes.push(flaggedRoutes[flag.name]); + } + }); + return ( {viableRoutes.map((route) => (