From 24704eb5a9f8570faee3c3d4a9c619070f0c1596 Mon Sep 17 00:00:00 2001 From: Victor Date: Wed, 5 Feb 2025 11:12:02 -0500 Subject: [PATCH] add gating for review icon --- .../components/EnvironmentAppSidebar/EntitySidebar.tsx | 8 +++++--- querybook/webapp/redux/queryReview/selector.ts | 9 +++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/querybook/webapp/components/EnvironmentAppSidebar/EntitySidebar.tsx b/querybook/webapp/components/EnvironmentAppSidebar/EntitySidebar.tsx index 0d6ce3c9f..07a5138a8 100644 --- a/querybook/webapp/components/EnvironmentAppSidebar/EntitySidebar.tsx +++ b/querybook/webapp/components/EnvironmentAppSidebar/EntitySidebar.tsx @@ -9,7 +9,6 @@ import { SearchContainer } from 'components/Search/SearchContainer'; import { UserMenu } from 'components/UserMenu/UserMenu'; import { ComponentType, ElementType } from 'const/analytics'; import { trackClick } from 'lib/analytics'; -import { usePeerReview } from 'lib/peer-review/config'; import { queryMetastoresSelector } from 'redux/dataSources/selector'; import { currentEnvironmentSelector } from 'redux/environment/selector'; import { IconButton } from 'ui/Button/IconButton'; @@ -19,6 +18,7 @@ import { Entity } from './types'; import './EntitySidebar.scss'; import { QueryReviewButton } from 'components/QueryReviewsNavigator/QueryReviewButton'; +import { hasEnabledPeerReviewEngineSelector } from 'redux/queryReview/selector'; interface IEntitySidebarProps { selectedEntity: Entity; @@ -29,7 +29,9 @@ export const EntitySidebar: React.FunctionComponent = React.memo(({ selectedEntity, onSelectEntity }) => { const environment = useSelector(currentEnvironmentSelector); const queryMetastores = useSelector(queryMetastoresSelector); - const { isEnabled: isPeerReviewEnabled } = usePeerReview(); + const hasEnabledPeerReviewEngine = useSelector( + hasEnabledPeerReviewEngineSelector + ); return (
@@ -156,7 +158,7 @@ export const EntitySidebar: React.FunctionComponent = }} active={selectedEntity === 'execution'} /> - {isPeerReviewEnabled && ( + {hasEnabledPeerReviewEngine && ( { diff --git a/querybook/webapp/redux/queryReview/selector.ts b/querybook/webapp/redux/queryReview/selector.ts index b44f23ae5..0074bdd27 100644 --- a/querybook/webapp/redux/queryReview/selector.ts +++ b/querybook/webapp/redux/queryReview/selector.ts @@ -1,6 +1,7 @@ import { createSelector } from 'reselect'; import { IStoreState } from '../store/types'; +import { queryEngineSelector } from 'redux/queryEngine/selector'; const selectQueryReviewState = (state: IStoreState) => state.queryReview; @@ -33,3 +34,11 @@ export const selectErrorAssignedReviews = createSelector( selectQueryReviewState, (queryReview) => queryReview.errorAssignedReviews ); + +export const hasEnabledPeerReviewEngineSelector = createSelector( + queryEngineSelector, + (queryEngines): boolean => + queryEngines.some((engine) => + Boolean(engine?.feature_params?.peer_review) + ) +);