]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-23188 Rename isLegacy into isStandardMode and useLegacyCCTMode into useStandard...
authorIsmail Cherri <ismail.cherri@sonarsource.com>
Tue, 15 Oct 2024 15:57:26 +0000 (17:57 +0200)
committersonartech <sonartech@sonarsource.com>
Wed, 16 Oct 2024 20:03:00 +0000 (20:03 +0000)
45 files changed:
server/sonar-web/src/main/js/app/components/ChangeInCalculationPill.tsx
server/sonar-web/src/main/js/app/components/ComponentContainer.tsx
server/sonar-web/src/main/js/app/components/__tests__/CalculationChangeMessage-test.tsx
server/sonar-web/src/main/js/app/components/__tests__/ComponentContainer-test.tsx
server/sonar-web/src/main/js/app/components/calculation-notification/CalculationChangeMessage.tsx
server/sonar-web/src/main/js/app/components/metrics/RatingComponent.tsx
server/sonar-web/src/main/js/apps/code/components/CodeAppRenderer.tsx
server/sonar-web/src/main/js/apps/code/components/ComponentMeasure.tsx
server/sonar-web/src/main/js/apps/code/components/ComponentsHeader.tsx
server/sonar-web/src/main/js/apps/coding-rules/components/FacetsList.tsx
server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsHeaderSide.tsx
server/sonar-web/src/main/js/apps/coding-rules/components/RuleListItem.tsx
server/sonar-web/src/main/js/apps/component-measures/hooks.ts
server/sonar-web/src/main/js/apps/component-measures/sidebar/DomainSubnavigation.tsx
server/sonar-web/src/main/js/apps/component-measures/sidebar/Sidebar.tsx
server/sonar-web/src/main/js/apps/component-measures/utils.ts
server/sonar-web/src/main/js/apps/issues/components/IssueHeaderSide.tsx
server/sonar-web/src/main/js/apps/issues/sidebar/Sidebar.tsx
server/sonar-web/src/main/js/apps/overview/branches/ActivityPanel.tsx
server/sonar-web/src/main/js/apps/overview/branches/BranchOverview.tsx
server/sonar-web/src/main/js/apps/overview/branches/SoftwareImpactMeasureCard.tsx
server/sonar-web/src/main/js/apps/overview/branches/SoftwareImpactMeasureRating.tsx
server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityApp.tsx
server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityAppRenderer.tsx
server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityGraphs.tsx
server/sonar-web/src/main/js/apps/projects/__tests__/utils-test.ts
server/sonar-web/src/main/js/apps/projects/components/AllProjects.tsx
server/sonar-web/src/main/js/apps/projects/components/project-card/ProjectCardMeasures.tsx
server/sonar-web/src/main/js/apps/projects/filters/RatingFacet.tsx
server/sonar-web/src/main/js/apps/projects/query.ts
server/sonar-web/src/main/js/apps/projects/utils.ts
server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonResults.tsx
server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRules.tsx
server/sonar-web/src/main/js/apps/settings/components/authentication/GitHubAuthenticationTab.tsx
server/sonar-web/src/main/js/apps/settings/components/authentication/GitHubConfigurationForm.tsx
server/sonar-web/src/main/js/components/SourceViewer/SourceViewerHeader.tsx
server/sonar-web/src/main/js/components/SourceViewer/components/LineIssuesIndicator.tsx
server/sonar-web/src/main/js/components/activity-graph/utils.ts
server/sonar-web/src/main/js/components/icon-mappers/SoftwareImpactSeverityIcon.tsx
server/sonar-web/src/main/js/components/issue/components/IssueTitleBar.tsx
server/sonar-web/src/main/js/components/shared/AnalysisMissingInfoMessage.tsx
server/sonar-web/src/main/js/components/shared/SoftwareImpactPillList.tsx
server/sonar-web/src/main/js/helpers/activity-graph.ts
server/sonar-web/src/main/js/queries/rules.ts
server/sonar-web/src/main/js/queries/settings.ts

index deb82e402febbca3902e30b3e2b802b1d04938bf..e8b3fc1340f4c175657987ad4a3d2be9e0ff0737 100644 (file)
@@ -23,7 +23,7 @@ import * as React from 'react';
 import DocumentationLink from '../../components/common/DocumentationLink';
 import { DocLink } from '../../helpers/doc-links';
 import { translate } from '../../helpers/l10n';
-import { useIsLegacyCCTMode } from '../../queries/settings';
+import { useStandardExperienceMode } from '../../queries/settings';
 import { ComponentQualifier } from '../../sonar-aligned/types/component';
 
 interface Props {
@@ -32,9 +32,9 @@ interface Props {
 
 export default function ChangeInCalculation({ qualifier }: Readonly<Props>) {
   const [isPopoverOpen, setIsPopoverOpen] = React.useState(false);
-  const { data: isLegacy, isLoading } = useIsLegacyCCTMode();
+  const { data: isStandardMode, isLoading } = useStandardExperienceMode();
 
-  if (isLegacy || isLoading) {
+  if (isStandardMode || isLoading) {
     return null;
   }
 
index 5df87de7d474629babc8f09662d381ddf7bec65e..af79c64c70b82654c401fd16803e1457dec1c6b6 100644 (file)
@@ -34,7 +34,7 @@ import { translateWithParameters } from '../../helpers/l10n';
 import { HttpStatus } from '../../helpers/request';
 import { getPortfolioUrl, getProjectUrl, getPullRequestUrl } from '../../helpers/urls';
 import { useCurrentBranchQuery } from '../../queries/branch';
-import { useIsLegacyCCTMode } from '../../queries/settings';
+import { useStandardExperienceMode } from '../../queries/settings';
 import { ProjectAlmBindingConfigurationErrors } from '../../types/alm-settings';
 import { Branch } from '../../types/branch-like';
 import { isFile } from '../../types/component';
@@ -73,8 +73,8 @@ function ComponentContainer({ hasFeature }: Readonly<WithAvailableFeaturesProps>
     fixedInPullRequest ? component : undefined,
   );
 
-  //prefetch isLegacyCCTMode
-  useIsLegacyCCTMode();
+  //prefetch isStandardExperienceMode
+  useStandardExperienceMode();
 
   const isInTutorials = pathname.includes('tutorials');
 
index 737f980634ab22ce64fcb841fcd5ecd484f3e53e..fa213e0394c18e9bf18965dd8ba7ac1aad10e13a 100644 (file)
@@ -53,7 +53,7 @@ it.each([
 it.each([
   ['Project', '/projects', ComponentQualifier.Project],
   ['Portfolios', '/portfolios', ComponentQualifier.Portfolio],
-])('should not render on %s page if isLegacy', (_, path, qualifier) => {
+])('should not render on %s page if isStandardMode', (_, path, qualifier) => {
   settingsHandler.set(SettingsKey.MQRMode, 'false');
   render(path);
   expect(ui.alert.get()).toBeInTheDocument();
index 10b7e06c5e87717d09997785437d1183f610048b..5facef0fe93e281a556606ef6f7c8069e44b2118 100644 (file)
@@ -52,7 +52,7 @@ jest.mock('../../../api/components', () => ({
 }));
 
 jest.mock('../../../queries/settings', () => ({
-  useIsLegacyCCTMode: jest.fn(),
+  useStandardExperienceMode: jest.fn(),
 }));
 
 jest.mock('../../../api/navigation', () => ({
index 34e97a11306904aefe676b26b27f3591fe10d7a4..14b082b1235f8526a066e404461bd036a2cc8c24 100644 (file)
@@ -25,7 +25,7 @@ import DocumentationLink from '../../../components/common/DocumentationLink';
 import DismissableAlert from '../../../components/ui/DismissableAlert';
 import { DocLink } from '../../../helpers/doc-links';
 import { translate } from '../../../helpers/l10n';
-import { useIsLegacyCCTMode } from '../../../queries/settings';
+import { useStandardExperienceMode } from '../../../queries/settings';
 import { Dict } from '../../../types/types';
 
 const SHOW_MESSAGE_PATHS: Dict<ComponentQualifier> = {
@@ -37,9 +37,9 @@ const ALERT_KEY = 'sonarqube.dismissed_calculation_change_alert';
 
 export default function CalculationChangeMessage() {
   const location = useLocation();
-  const { data: isLegacy } = useIsLegacyCCTMode();
+  const { data: isStandardMode } = useStandardExperienceMode();
 
-  if (isLegacy || !Object.keys(SHOW_MESSAGE_PATHS).includes(location.pathname)) {
+  if (isStandardMode || !Object.keys(SHOW_MESSAGE_PATHS).includes(location.pathname)) {
     return null;
   }
 
index f63301ef1f387d16b9b06e2bc66119ef82745ffa..50714c4d1a1ebf41c90cbe093656732934690ecf 100644 (file)
@@ -27,7 +27,7 @@ import { getLeakValue } from '../../../components/measure/utils';
 import { SOFTWARE_QUALITY_RATING_METRICS_MAP } from '../../../helpers/constants';
 import { isDiffMetric } from '../../../helpers/measures';
 import { useMeasureQuery } from '../../../queries/measures';
-import { useIsLegacyCCTMode } from '../../../queries/settings';
+import { useStandardExperienceMode } from '../../../queries/settings';
 import { BranchLike } from '../../../types/branch-like';
 
 type SizeType = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
@@ -59,7 +59,7 @@ function isNewRatingMetric(metricKey: MetricKey) {
 }
 
 const useGetMetricKeyForRating = (ratingMetric: RatingMetricKeys): MetricKey | null => {
-  const { data: isLegacy, isLoading } = useIsLegacyCCTMode();
+  const { data: isStandardMode, isLoading } = useStandardExperienceMode();
 
   const hasSoftwareQualityRating = !!SOFTWARE_QUALITY_RATING_METRICS_MAP[ratingMetric];
 
@@ -70,7 +70,7 @@ const useGetMetricKeyForRating = (ratingMetric: RatingMetricKeys): MetricKey | n
   if (isLoading) {
     return null;
   }
-  return isLegacy || !hasSoftwareQualityRating
+  return isStandardMode || !hasSoftwareQualityRating
     ? ratingMetric
     : SOFTWARE_QUALITY_RATING_METRICS_MAP[ratingMetric];
 };
@@ -88,7 +88,7 @@ export default function RatingComponent(props: Readonly<Props>) {
   } = props;
 
   const metricKey = useGetMetricKeyForRating(ratingMetric as RatingMetricKeys);
-  const { data: isLegacy } = useIsLegacyCCTMode();
+  const { data: isStandardMode } = useStandardExperienceMode();
   const { data: targetMeasure, isLoading: isLoadingTargetMeasure } = useMeasureQuery(
     { componentKey, metricKey: metricKey ?? '', branchLike },
     { enabled: !forceMetric && !!metricKey },
@@ -98,7 +98,8 @@ export default function RatingComponent(props: Readonly<Props>) {
     { componentKey, metricKey: ratingMetric, branchLike },
     {
       enabled:
-        forceMetric || (!isLegacy && !isNewRatingMetric(ratingMetric) && targetMeasure === null),
+        forceMetric ||
+        (!isStandardMode && !isNewRatingMetric(ratingMetric) && targetMeasure === null),
     },
   );
 
index c180e6fe1a7d408a6bd6e2f17084cf83f1ba57d9..03c701c5cb53c67490cca8b235f6f9d7a5cfac09 100644 (file)
@@ -42,7 +42,7 @@ import {
   areCCTMeasuresComputed,
   areSoftwareQualityRatingsComputed,
 } from '../../../helpers/measures';
-import { useIsLegacyCCTMode } from '../../../queries/settings';
+import { useStandardExperienceMode } from '../../../queries/settings';
 import { BranchLike } from '../../../types/branch-like';
 import { isApplication } from '../../../types/component';
 import { Component, ComponentMeasure, Dict, Metric } from '../../../types/types';
@@ -102,7 +102,7 @@ export default function CodeAppRenderer(props: Readonly<Props>) {
 
   const showComponentList = sourceViewer === undefined && components.length > 0 && !showSearch;
 
-  const { data: isLegacy, isLoading: isLoadingLegacy } = useIsLegacyCCTMode();
+  const { data: isStandardMode, isLoading: isLoadingStandardMode } = useStandardExperienceMode();
 
   const metricKeys = intersection(
     getCodeMetrics(component.qualifier, branchLike, { newCode: newCodeSelected }),
@@ -117,10 +117,10 @@ export default function CodeAppRenderer(props: Readonly<Props>) {
   );
 
   const filteredMetrics = difference(metricKeys, [
-    ...(allComponentsHaveSoftwareQualityMeasures && !isLegacy
+    ...(allComponentsHaveSoftwareQualityMeasures && !isStandardMode
       ? OLD_TAXONOMY_METRICS
       : CCT_SOFTWARE_QUALITY_METRICS),
-    ...(allComponentsHaveRatings && !isLegacy
+    ...(allComponentsHaveRatings && !isStandardMode
       ? [...OLD_TAXONOMY_RATINGS, ...LEAK_OLD_TAXONOMY_RATINGS]
       : SOFTWARE_QUALITY_RATING_METRICS),
   ]).map((key) => metrics[key]);
@@ -150,7 +150,7 @@ export default function CodeAppRenderer(props: Readonly<Props>) {
         </FlagMessage>
       )}
 
-      <Spinner isLoading={loading || isLoadingLegacy}>
+      <Spinner isLoading={loading || isLoadingStandardMode}>
         {!allComponentsHaveSoftwareQualityMeasures && (
           <AnalysisMissingInfoMessage
             qualifier={component.qualifier}
index 7f77c3dda31a563f3e65d190939d3757b25052eb..30d46001e75dcc8cea8ea23b484b99ebf27e3f83 100644 (file)
@@ -34,7 +34,7 @@ import {
   areCCTMeasuresComputed as areCCTMeasuresComputedFn,
   isDiffMetric,
 } from '../../../helpers/measures';
-import { useIsLegacyCCTMode } from '../../../queries/settings';
+import { useStandardExperienceMode } from '../../../queries/settings';
 import { BranchLike } from '../../../types/branch-like';
 import { isApplication, isProject } from '../../../types/component';
 import { Metric, ComponentMeasure as TypeComponentMeasure } from '../../../types/types';
@@ -48,13 +48,13 @@ interface Props {
 export default function ComponentMeasure(props: Props) {
   const { component, metric, branchLike } = props;
   const isProjectLike = isProject(component.qualifier) || isApplication(component.qualifier);
-  const { data: isLegacy } = useIsLegacyCCTMode();
+  const { data: isStandardMode } = useStandardExperienceMode();
   const isReleasability = metric.key === MetricKey.releasability_rating;
 
   let finalMetricKey = isProjectLike && isReleasability ? MetricKey.alert_status : metric.key;
   const finalMetricType = isProjectLike && isReleasability ? MetricType.Level : metric.type;
 
-  const areCCTMeasuresComputed = !isLegacy && areCCTMeasuresComputedFn(component.measures);
+  const areCCTMeasuresComputed = !isStandardMode && areCCTMeasuresComputedFn(component.measures);
   finalMetricKey = areCCTMeasuresComputed
     ? (OLD_TO_NEW_TAXONOMY_METRICS_MAP[finalMetricKey as MetricKey] ?? finalMetricKey)
     : finalMetricKey;
index b1ee5f405003a88fac80ae6d4662d6ef8f5b4b12..4ee73fd725ee03a18574442fb69aaf4a0daed935 100644 (file)
@@ -26,7 +26,7 @@ import {
   OLD_TO_NEW_TAXONOMY_METRICS_MAP,
 } from '../../../helpers/constants';
 import { translate } from '../../../helpers/l10n';
-import { useIsLegacyCCTMode } from '../../../queries/settings';
+import { useStandardExperienceMode } from '../../../queries/settings';
 import { ComponentMeasure } from '../../../types/types';
 
 interface ComponentsHeaderProps {
@@ -47,7 +47,7 @@ const SHORT_NAME_METRICS = [
 
 export default function ComponentsHeader(props: ComponentsHeaderProps) {
   const { baseComponent, canBePinned = true, metrics, rootComponent, showAnalysisDate } = props;
-  const { data: isLegacy = false } = useIsLegacyCCTMode();
+  const { data: isStandardMode = false } = useStandardExperienceMode();
   const isPortfolio = isPortfolioLike(rootComponent.qualifier);
   let columns: string[] = [];
   let Cell: typeof NumericalCell;
@@ -68,7 +68,7 @@ export default function ComponentsHeader(props: ComponentsHeaderProps) {
     Cell = RatingCell;
   } else {
     columns = metrics.map((m: MetricKey) => {
-      const metric = isLegacy ? m : (OLD_TO_NEW_TAXONOMY_METRICS_MAP[m] ?? m);
+      const metric = isStandardMode ? m : (OLD_TO_NEW_TAXONOMY_METRICS_MAP[m] ?? m);
 
       return translate(
         'metric',
index e29d4e4491341e2f1cfcf366175bab4a93c2d086..ec284499b1d8cc59382c2d73fb570f8ab5c9e441 100644 (file)
@@ -24,7 +24,7 @@ import { useAvailableFeatures } from '../../../app/components/available-features
 import SeverityFacet from '../../../components/facets/SeverityFacet';
 import StandardSeverityFacet from '../../../components/facets/StandardSeverityFacet';
 import { translate } from '../../../helpers/l10n';
-import { useIsLegacyCCTMode } from '../../../queries/settings';
+import { useStandardExperienceMode } from '../../../queries/settings';
 import { Feature } from '../../../types/features';
 import { Dict } from '../../../types/types';
 import { LanguageFacet } from '../../issues/sidebar/LanguageFacet';
@@ -59,7 +59,7 @@ const MAX_INITIAL_LANGUAGES = 5;
 
 export default function FacetsList(props: FacetsListProps) {
   const { hasFeature } = useAvailableFeatures();
-  const { data: isLegacy } = useIsLegacyCCTMode();
+  const { data: isStandardMode } = useStandardExperienceMode();
   const languageDisabled = !props.hideProfileFacet && props.query.profile !== undefined;
 
   const inheritanceDisabled =
@@ -82,7 +82,7 @@ export default function FacetsList(props: FacetsListProps) {
         disabledHelper={translate('coding_rules.filters.language.inactive')}
       />
 
-      {isLegacy && (
+      {isStandardMode && (
         <>
           <BasicSeparator className="sw-my-4" />
 
@@ -96,7 +96,7 @@ export default function FacetsList(props: FacetsListProps) {
         </>
       )}
 
-      {!isLegacy && (
+      {!isStandardMode && (
         <>
           <BasicSeparator className="sw-my-4" />
 
@@ -110,7 +110,7 @@ export default function FacetsList(props: FacetsListProps) {
         </>
       )}
 
-      {!isLegacy && (
+      {!isStandardMode && (
         <>
           <BasicSeparator className="sw-my-4" />
 
@@ -124,7 +124,7 @@ export default function FacetsList(props: FacetsListProps) {
         </>
       )}
 
-      {!isLegacy && (
+      {!isStandardMode && (
         <>
           <BasicSeparator className="sw-my-4" />
 
@@ -138,7 +138,7 @@ export default function FacetsList(props: FacetsListProps) {
         </>
       )}
 
-      {isLegacy && (
+      {isStandardMode && (
         <>
           <BasicSeparator className="sw-my-4" />
 
@@ -152,7 +152,7 @@ export default function FacetsList(props: FacetsListProps) {
         </>
       )}
 
-      {!isLegacy && (
+      {!isStandardMode && (
         <>
           <BasicSeparator className="sw-my-4" />
 
index 8731166166f5aa3fe1ccbcb744f0998b10d013b3..25b8bc60b9bed847f48b26da0e8ba6bafc804900 100644 (file)
@@ -23,7 +23,7 @@ import React from 'react';
 import { CleanCodeAttributePill } from '../../../components/shared/CleanCodeAttributePill';
 import SoftwareImpactPillList from '../../../components/shared/SoftwareImpactPillList';
 import { translate } from '../../../helpers/l10n';
-import { useIsLegacyCCTMode } from '../../../queries/settings';
+import { useStandardExperienceMode } from '../../../queries/settings';
 import { IssueSeverity } from '../../../types/issues';
 import { RuleDetails } from '../../../types/types';
 
@@ -35,7 +35,7 @@ export default function RuleDetailsHeaderSide({ ruleDetails }: Readonly<Props>)
   const hasCleanCodeAttribute =
     ruleDetails.cleanCodeAttributeCategory && ruleDetails.cleanCodeAttribute;
   const hasSoftwareImpact = ruleDetails.impacts.length > 0;
-  const { data: isLegacy } = useIsLegacyCCTMode();
+  const { data: isStandardMode } = useStandardExperienceMode();
 
   if (!hasCleanCodeAttribute && !hasSoftwareImpact) {
     return null;
@@ -45,7 +45,9 @@ export default function RuleDetailsHeaderSide({ ruleDetails }: Readonly<Props>)
     <StyledSection className="sw-flex sw-flex-col sw-pl-4 sw-gap-6 sw-max-w-[250px]">
       {hasSoftwareImpact && (
         <RuleHeaderInfo
-          title={isLegacy ? translate('type') : translate('coding_rules.software_qualities.label')}
+          title={
+            isStandardMode ? translate('type') : translate('coding_rules.software_qualities.label')
+          }
         >
           <SoftwareImpactPillList
             className="sw-flex-wrap"
@@ -57,15 +59,17 @@ export default function RuleDetailsHeaderSide({ ruleDetails }: Readonly<Props>)
         </RuleHeaderInfo>
       )}
 
-      {ruleDetails.cleanCodeAttributeCategory && ruleDetails.cleanCodeAttribute && !isLegacy && (
-        <RuleHeaderInfo title={translate('coding_rules.cct_attribute.label')}>
-          <CleanCodeAttributePill
-            cleanCodeAttributeCategory={ruleDetails.cleanCodeAttributeCategory}
-            cleanCodeAttribute={ruleDetails.cleanCodeAttribute}
-            type="rule"
-          />
-        </RuleHeaderInfo>
-      )}
+      {ruleDetails.cleanCodeAttributeCategory &&
+        ruleDetails.cleanCodeAttribute &&
+        !isStandardMode && (
+          <RuleHeaderInfo title={translate('coding_rules.cct_attribute.label')}>
+            <CleanCodeAttributePill
+              cleanCodeAttributeCategory={ruleDetails.cleanCodeAttributeCategory}
+              cleanCodeAttribute={ruleDetails.cleanCodeAttribute}
+              type="rule"
+            />
+          </RuleHeaderInfo>
+        )}
     </StyledSection>
   );
 }
index 8d26d829b4782757f7ed816641cedf20c87d1c1b..607c206990dd3959ea315cd269aab303e4b89b64 100644 (file)
@@ -42,7 +42,7 @@ import {
   useDeactivateRuleMutation,
 } from '../../../queries/quality-profiles';
 import { useRuleDetailsQuery } from '../../../queries/rules';
-import { useIsLegacyCCTMode } from '../../../queries/settings';
+import { useStandardExperienceMode } from '../../../queries/settings';
 import { IssueSeverity } from '../../../types/issues';
 import { Rule, RuleActivation } from '../../../types/types';
 import ActivatedRuleActions from './ActivatedRuleActions';
@@ -85,7 +85,7 @@ export default function RuleListItem(props: Readonly<Props>) {
   const { mutate: deactivateRule } = useDeactivateRuleMutation((data) =>
     onDeactivate(data.key, data.rule),
   );
-  const { data: isLegacy } = useIsLegacyCCTMode();
+  const { data: isStandardMode } = useStandardExperienceMode();
 
   const activation =
     data && ruleIsChanged
@@ -249,7 +249,7 @@ export default function RuleListItem(props: Readonly<Props>) {
           </div>
 
           <div>
-            {rule.cleanCodeAttributeCategory !== undefined && !isLegacy && (
+            {rule.cleanCodeAttributeCategory !== undefined && !isStandardMode && (
               <CleanCodeAttributePill
                 cleanCodeAttributeCategory={rule.cleanCodeAttributeCategory}
                 type="rule"
index d0fa433ba1fe553dcfffba071cab0629c2afcd1c..984ad1ab37718d9ffe8ebb6412ca34d4d607559d 100644 (file)
@@ -19,7 +19,7 @@
  */
 
 import { areCCTMeasuresComputed, areSoftwareQualityRatingsComputed } from '../../helpers/measures';
-import { useIsLegacyCCTMode } from '../../queries/settings';
+import { useStandardExperienceMode } from '../../queries/settings';
 import { MeasureEnhanced } from '../../types/types';
 import {
   legacyBubbles,
@@ -28,9 +28,9 @@ import {
 } from './config/bubbles';
 
 export function useBubbleChartMetrics(measures: MeasureEnhanced[]) {
-  const { data: isLegacy } = useIsLegacyCCTMode();
+  const { data: isStandardMode } = useStandardExperienceMode();
 
-  if (isLegacy || !areCCTMeasuresComputed(measures)) {
+  if (isStandardMode || !areCCTMeasuresComputed(measures)) {
     return legacyBubbles;
   }
 
index 1271c05af55c06ba1e808eed5be976d209739708..ef1702f1db3adf508d44581d54b5da4af8efbcab 100644 (file)
@@ -32,7 +32,7 @@ import {
   hasMessage,
   translate,
 } from '../../../helpers/l10n';
-import { useIsLegacyCCTMode } from '../../../queries/settings';
+import { useStandardExperienceMode } from '../../../queries/settings';
 import { MeasureEnhanced } from '../../../types/types';
 import { useBubbleChartMetrics } from '../hooks';
 import {
@@ -55,7 +55,7 @@ interface Props {
 
 export default function DomainSubnavigation(props: Readonly<Props>) {
   const { componentKey, domain, onChange, open, selected, showFullMeasures, measures } = props;
-  const { data: isLegacy = false } = useIsLegacyCCTMode();
+  const { data: isStandardMode = false } = useStandardExperienceMode();
   const helperMessageKey = `component_measures.domain_subnavigation.${domain.name}.help`;
   const helper = hasMessage(helperMessageKey) ? translate(helperMessageKey) : undefined;
   const items = addMeasureCategories(domain.name, domain.measures);
@@ -114,7 +114,7 @@ export default function DomainSubnavigation(props: Readonly<Props>) {
             key={item.metric.key}
             componentKey={componentKey}
             measure={item}
-            name={getMetricSubnavigationName(item.metric, translateMetric, false, isLegacy)}
+            name={getMetricSubnavigationName(item.metric, translateMetric, false, isStandardMode)}
             onChange={onChange}
             selected={selected}
           />
index ea39cb9d6d4d63bf069b386b63fc6884876d1ce6..618c42a30d3714640703886d00b6b1a620faf7d5 100644 (file)
@@ -32,7 +32,7 @@ import * as React from 'react';
 import A11ySkipTarget from '~sonar-aligned/components/a11y/A11ySkipTarget';
 import { translate } from '../../../helpers/l10n';
 import useFollowScroll from '../../../hooks/useFollowScroll';
-import { useIsLegacyCCTMode } from '../../../queries/settings';
+import { useStandardExperienceMode } from '../../../queries/settings';
 import { Domain } from '../../../types/measures';
 import { MeasureEnhanced } from '../../../types/types';
 import { PROJECT_OVERVEW, Query, isProjectOverview, populateDomainsFromMeasures } from '../utils';
@@ -49,8 +49,8 @@ interface Props {
 export default function Sidebar(props: Readonly<Props>) {
   const { showFullMeasures, updateQuery, componentKey, selectedMetric, measures } = props;
   const { top: topScroll, scrolledOnce } = useFollowScroll();
-  const { data: isLegacy } = useIsLegacyCCTMode();
-  const domains = populateDomainsFromMeasures(measures, isLegacy);
+  const { data: isStandardMode } = useStandardExperienceMode();
+  const domains = populateDomainsFromMeasures(measures, isStandardMode);
 
   const handleChangeMetric = React.useCallback(
     (metric: string) => {
index 8a70d05b716abd732dc1e6dc05eb8cb12c467d3c..f277a75fd355c0d14799fd6a247f27807642372f 100644 (file)
@@ -102,7 +102,7 @@ const ISSUES_METRICS = [
 ];
 
 export const populateDomainsFromMeasures = memoize(
-  (measures: MeasureEnhanced[], isLegacy = false): Domain[] => {
+  (measures: MeasureEnhanced[], isStandardMode = false): Domain[] => {
     let populatedMeasures = measures
       .filter((measure) => !DEPRECATED_METRICS.includes(measure.metric.key as MetricKey))
       .map((measure) => {
@@ -118,7 +118,7 @@ export const populateDomainsFromMeasures = memoize(
         };
       });
 
-    if (!isLegacy && areLeakCCTMeasuresComputed(measures)) {
+    if (!isStandardMode && areLeakCCTMeasuresComputed(measures)) {
       populatedMeasures = populatedMeasures.filter(
         (measure) => !LEAK_OLD_TAXONOMY_METRICS.includes(measure.metric.key as MetricKey),
       );
@@ -129,7 +129,7 @@ export const populateDomainsFromMeasures = memoize(
     }
 
     // Both new and overall code will exist after next analysis
-    if (!isLegacy && areSoftwareQualityRatingsComputed(measures)) {
+    if (!isStandardMode && areSoftwareQualityRatingsComputed(measures)) {
       populatedMeasures = populatedMeasures.filter(
         (measure) =>
           !OLD_TAXONOMY_RATINGS.includes(measure.metric.key as MetricKey) &&
@@ -141,7 +141,7 @@ export const populateDomainsFromMeasures = memoize(
       );
     }
 
-    if (!isLegacy && areCCTMeasuresComputed(measures)) {
+    if (!isStandardMode && areCCTMeasuresComputed(measures)) {
       populatedMeasures = populatedMeasures.filter(
         (measure) => !OLD_TAXONOMY_METRICS.includes(measure.metric.key as MetricKey),
       );
@@ -159,13 +159,13 @@ export function getMetricSubnavigationName(
   metric: Metric,
   translateFn: (metric: Metric) => string,
   isDiff = false,
-  isLegacy = false,
+  isStandardMode = false,
 ) {
   // MQR mode and old taxonomy metrics, we return "Issues" for them anyway
-  if (!isLegacy && OLD_TAXONOMY_METRICS.includes(metric.key as MetricKey)) {
+  if (!isStandardMode && OLD_TAXONOMY_METRICS.includes(metric.key as MetricKey)) {
     return translate('component_measures.awaiting_analysis.name');
   }
-  if (!isLegacy && LEAK_OLD_TAXONOMY_METRICS.includes(metric.key as MetricKey)) {
+  if (!isStandardMode && LEAK_OLD_TAXONOMY_METRICS.includes(metric.key as MetricKey)) {
     return translate('component_measures.leak_awaiting_analysis.name');
   }
 
index b30eb641b1faf120cbe4bf704c874a5aad23b35e..81a093dabee4257e1fa2eadcada5834a714acc3d 100644 (file)
@@ -24,7 +24,7 @@ import React from 'react';
 import { CleanCodeAttributePill } from '../../../components/shared/CleanCodeAttributePill';
 import SoftwareImpactPillList from '../../../components/shared/SoftwareImpactPillList';
 import { translate } from '../../../helpers/l10n';
-import { useIsLegacyCCTMode } from '../../../queries/settings';
+import { useStandardExperienceMode } from '../../../queries/settings';
 import { IssueSeverity } from '../../../types/issues';
 import { Issue } from '../../../types/types';
 
@@ -33,14 +33,14 @@ interface Props {
 }
 
 export default function IssueHeaderSide({ issue }: Readonly<Props>) {
-  const { data: isLegacy, isLoading } = useIsLegacyCCTMode();
+  const { data: isStandardMode, isLoading } = useStandardExperienceMode();
   return (
     <StyledSection className="sw-flex sw-flex-col sw-pl-4 sw-max-w-[250px]">
       <Spinner isLoading={isLoading}>
         <IssueHeaderInfo
           className="sw-mb-6"
           data-guiding-id="issue-2"
-          title={isLegacy ? translate('type') : translate('issue.software_qualities.label')}
+          title={isStandardMode ? translate('type') : translate('issue.software_qualities.label')}
         >
           <SoftwareImpactPillList
             className="sw-flex-wrap"
@@ -50,7 +50,7 @@ export default function IssueHeaderSide({ issue }: Readonly<Props>) {
           />
         </IssueHeaderInfo>
 
-        {!isLegacy && (
+        {!isStandardMode && (
           <IssueHeaderInfo title={translate('issue.cct_attribute.label')}>
             <CleanCodeAttributePill
               cleanCodeAttributeCategory={issue.cleanCodeAttributeCategory}
index a41e9a851eec0708b96e9b9094f93731e08b6f04..f8930f85993dec02cf7780ffed55993c5be97f81 100644 (file)
@@ -28,7 +28,7 @@ import { useAvailableFeatures } from '../../../app/components/available-features
 import SeverityFacet from '../../../components/facets/SeverityFacet';
 import StandardSeverityFacet from '../../../components/facets/StandardSeverityFacet';
 import { translate } from '../../../helpers/l10n';
-import { useIsLegacyCCTMode } from '../../../queries/settings';
+import { useStandardExperienceMode } from '../../../queries/settings';
 import { BranchLike } from '../../../types/branch-like';
 import { isApplication, isProject, isView } from '../../../types/component';
 import { Feature } from '../../../types/features';
@@ -94,7 +94,7 @@ export function Sidebar(props: Readonly<Props>) {
   } = props;
   const { settings } = useAppState();
   const { hasFeature } = useAvailableFeatures();
-  const { data: isLegacy } = useIsLegacyCCTMode();
+  const { data: isStandardMode } = useStandardExperienceMode();
 
   const renderComponentFacets = () => {
     const hasFileOrDirectory =
@@ -176,7 +176,7 @@ export function Sidebar(props: Readonly<Props>) {
         <PeriodFilter onChange={props.onFilterChange} newCodeSelected={query.inNewCodePeriod} />
       )}
 
-      {!isLegacy && !needIssueSync && (
+      {!isStandardMode && !needIssueSync && (
         <>
           <SoftwareQualityFacet
             fetching={props.loadingFacets.impactSoftwareQualities === true}
@@ -215,7 +215,7 @@ export function Sidebar(props: Readonly<Props>) {
         </>
       )}
 
-      {isLegacy && (
+      {isStandardMode && (
         <>
           <TypeFacet
             fetching={props.loadingFacets.types === true}
index 92c9bd59815291b3864d5cc68773c61f7327c639..6bbf5eaf39a95bf0abaa955874de2e33fd2b8cee 100644 (file)
@@ -33,7 +33,7 @@ import ActivityLink from '../../../components/common/ActivityLink';
 import { parseDate } from '../../../helpers/dates';
 import { translate, translateWithParameters } from '../../../helpers/l10n';
 import { localizeMetric } from '../../../helpers/measures';
-import { useIsLegacyCCTMode } from '../../../queries/settings';
+import { useStandardExperienceMode } from '../../../queries/settings';
 import { BranchLike } from '../../../types/branch-like';
 import {
   Analysis as AnalysisType,
@@ -72,8 +72,8 @@ export function ActivityPanel(props: ActivityPanelProps) {
     metrics,
   } = props;
 
-  const { data: isLegacy = false } = useIsLegacyCCTMode();
-  const displayedMetrics = getDisplayedHistoryMetrics(graph, [], isLegacy);
+  const { data: isStandardMode = false } = useStandardExperienceMode();
+  const displayedMetrics = getDisplayedHistoryMetrics(graph, [], isStandardMode);
   const series = generateSeries(measuresHistory, graph, metrics, displayedMetrics);
   const graphs = splitSeriesInGraphs(series, MAX_GRAPH_NB, MAX_SERIES_PER_GRAPH);
   let shownLeakPeriodDate;
index 3a159842e5f6a7b9011cd14fdfa2f242cb5d1701..ddf4d2ec60b80bfdf1da23d41f1360d0ffc36192 100644 (file)
@@ -45,7 +45,7 @@ import {
   useApplicationQualityGateStatus,
   useProjectQualityGateStatus,
 } from '../../../queries/quality-gates';
-import { useIsLegacyCCTMode } from '../../../queries/settings';
+import { useStandardExperienceMode } from '../../../queries/settings';
 import { ApplicationPeriod } from '../../../types/application';
 import { Branch, BranchLike } from '../../../types/branch-like';
 import { Analysis, GraphType, MeasureHistory } from '../../../types/project-activity';
@@ -69,7 +69,7 @@ const FROM_DATE = toISO8601WithOffsetString(new Date().setFullYear(new Date().ge
 
 export default function BranchOverview(props: Readonly<Props>) {
   const { component, branch, branchesEnabled } = props;
-  const { data: isLegacy = false } = useIsLegacyCCTMode();
+  const { data: isStandardMode = false } = useStandardExperienceMode();
   const { graph: initialGraph } = getActivityGraph(
     BRANCH_OVERVIEW_ACTIVITY_GRAPH,
     props.component.key,
@@ -283,7 +283,7 @@ export default function BranchOverview(props: Readonly<Props>) {
   };
 
   const loadHistoryMeasures = React.useCallback(() => {
-    const graphMetrics = getHistoryMetrics(graph, [], isLegacy);
+    const graphMetrics = getHistoryMetrics(graph, [], isStandardMode);
     const metrics = uniq([...HISTORY_METRICS_LIST, ...graphMetrics]);
 
     return getAllTimeMachineData({
index 3d381c9a414b5765c437e941795514a89329d693..3f3cb6f1dc1c5cb91c0a3e9cd7a11b7f2eed8b9e 100644 (file)
@@ -31,7 +31,7 @@ import {
   getIssueTypeBySoftwareQuality,
 } from '../../../helpers/issues';
 import { isDefined } from '../../../helpers/types';
-import { useIsLegacyCCTMode } from '../../../queries/settings';
+import { useStandardExperienceMode } from '../../../queries/settings';
 import { Branch } from '../../../types/branch-like';
 import { SoftwareImpactMeasureData, SoftwareQuality } from '../../../types/clean-code-taxonomy';
 import { QualityGateStatusConditionEnhanced } from '../../../types/quality-gates';
@@ -52,12 +52,12 @@ export function SoftwareImpactMeasureCard(props: Readonly<SoftwareImpactBreakdow
   const { component, conditions, softwareQuality, ratingMetricKey, measures, branch } = props;
 
   const intl = useIntl();
-  const { data: isLegacy } = useIsLegacyCCTMode();
+  const { data: isStandardMode } = useStandardExperienceMode();
 
   // Find measure for this software quality
   const metricKey = softwareQualityToMeasure(softwareQuality);
   const measureRaw = measures.find((m) => m.metric.key === metricKey);
-  const measure = isLegacy
+  const measure = isStandardMode
     ? undefined
     : (JSON.parse(measureRaw?.value ?? 'null') as SoftwareImpactMeasureData);
   const alternativeMeasure = measures.find(
@@ -87,8 +87,8 @@ export function SoftwareImpactMeasureCard(props: Readonly<SoftwareImpactBreakdow
     >
       <div className="sw-flex sw-items-center">
         <ColorBold className="sw-typo-semibold">
-          {!isLegacy && intl.formatMessage({ id: `software_quality.${softwareQuality}` })}
-          {alternativeMeasure && isLegacy && alternativeMeasure.metric.name}
+          {!isStandardMode && intl.formatMessage({ id: `software_quality.${softwareQuality}` })}
+          {alternativeMeasure && isStandardMode && alternativeMeasure.metric.name}
         </ColorBold>
         {failed && (
           <Badge className="sw-h-fit sw-ml-2" variant="deleted">
@@ -100,7 +100,7 @@ export function SoftwareImpactMeasureCard(props: Readonly<SoftwareImpactBreakdow
         <div className="sw-flex sw-mt-4">
           <div className="sw-flex sw-gap-1 sw-items-center">
             {count ? (
-              <Tooltip content={countTooltipOverlay} isOpen={isLegacy ? false : undefined}>
+              <Tooltip content={countTooltipOverlay} isOpen={isStandardMode ? false : undefined}>
                 <LinkStandalone
                   data-testid={`overview__software-impact-${softwareQuality}`}
                   aria-label={intl.formatMessage(
index c58ff188d1173762a6d910c12cc210c559ebf906..c990b5f26acebb1ee39bf8e9d1a28269f4d409a0 100644 (file)
@@ -24,7 +24,7 @@ import { useIntl } from 'react-intl';
 import { MetricKey } from '~sonar-aligned/types/metrics';
 import RatingComponent from '../../../app/components/metrics/RatingComponent';
 import RatingTooltipContent from '../../../components/measure/RatingTooltipContent';
-import { useIsLegacyCCTMode } from '../../../queries/settings';
+import { useStandardExperienceMode } from '../../../queries/settings';
 import { Branch } from '../../../types/branch-like';
 import { SoftwareImpactSeverity, SoftwareQuality } from '../../../types/clean-code-taxonomy';
 
@@ -37,7 +37,7 @@ export interface SoftwareImpactMeasureRatingProps {
 
 export function SoftwareImpactMeasureRating(props: Readonly<SoftwareImpactMeasureRatingProps>) {
   const { ratingMetricKey, componentKey, softwareQuality, branch } = props;
-  const { data: isLegacy = false } = useIsLegacyCCTMode();
+  const { data: isStandardMode = false } = useStandardExperienceMode();
 
   const intl = useIntl();
 
@@ -47,7 +47,7 @@ export function SoftwareImpactMeasureRating(props: Readonly<SoftwareImpactMeasur
         return null;
       }
 
-      if (isLegacy && value !== undefined) {
+      if (isStandardMode && value !== undefined) {
         return <RatingTooltipContent metricKey={ratingMetricKey} value={value} />;
       }
 
index 21cc693dd84eb125f1f133435da0b80ed3270249..b51a8650651f7f3b29d4a0f5605e92cdc47d8e50 100644 (file)
@@ -38,7 +38,7 @@ import useApplicationLeakQuery from '../../../queries/applications';
 import { useCurrentBranchQuery } from '../../../queries/branch';
 import { useAllMeasuresHistoryQuery } from '../../../queries/measures';
 import { useAllProjectAnalysesQuery } from '../../../queries/project-analyses';
-import { useIsLegacyCCTMode } from '../../../queries/settings';
+import { useStandardExperienceMode } from '../../../queries/settings';
 import { isApplication, isProject } from '../../../types/component';
 import { MeasureHistory, ParsedAnalysis } from '../../../types/project-activity';
 import { Query, parseQuery, serializeUrlQuery } from '../utils';
@@ -73,7 +73,7 @@ export function ProjectActivityApp() {
   );
 
   const { data: analysesData, isLoading: isLoadingAnalyses } = useAllProjectAnalysesQuery(enabled);
-  const { data: isLegacy, isLoading: isLoadingLegacy } = useIsLegacyCCTMode();
+  const { data: isStandardMode, isLoading: isLoadingStandardMode } = useStandardExperienceMode();
 
   const { data: historyData, isLoading: isLoadingHistory } = useAllMeasuresHistoryQuery(
     {
@@ -87,8 +87,11 @@ export function ProjectActivityApp() {
   const analyses = React.useMemo(() => analysesData ?? [], [analysesData]);
 
   const measuresHistory = React.useMemo(
-    () => (isLoadingLegacy ? [] : mergeRatingMeasureHistory(historyData, parseDate, isLegacy)),
-    [historyData, isLegacy, isLoadingLegacy],
+    () =>
+      isLoadingStandardMode
+        ? []
+        : mergeRatingMeasureHistory(historyData, parseDate, isStandardMode),
+    [historyData, isStandardMode, isLoadingStandardMode],
   );
 
   const leakPeriodDate = React.useMemo(() => {
@@ -139,11 +142,11 @@ export function ProjectActivityApp() {
 
   return (
     component && (
-      <Spinner isLoading={isLoadingLegacy}>
+      <Spinner isLoading={isLoadingStandardMode}>
         <ProjectActivityAppRenderer
           analyses={analyses}
-          isLegacy={
-            isLegacy ||
+          isStandardMode={
+            isStandardMode ||
             !firstSoftwareQualityRatingMetric ||
             firstSoftwareQualityRatingMetric.history.every((h) => h.value === undefined)
           }
index f52fbbd5b7273919a68a1d2d536ce57a893fe4f5..de667ada90bcc777bc9eb63aa4ff27e353db4cf9 100644 (file)
@@ -42,7 +42,7 @@ interface Props {
   analysesLoading: boolean;
   graphLoading: boolean;
   initializing: boolean;
-  isLegacy?: boolean;
+  isStandardMode?: boolean;
   leakPeriodDate?: Date;
   measuresHistory: MeasureHistory[];
   metrics: Metric[];
@@ -62,7 +62,7 @@ export default function ProjectActivityAppRenderer(props: Props) {
     graphLoading,
     metrics,
     project,
-    isLegacy,
+    isStandardMode,
   } = props;
   const { configuration, qualifier } = props.project;
   const canAdmin =
@@ -103,7 +103,7 @@ export default function ProjectActivityAppRenderer(props: Props) {
                 analyses={analyses}
                 leakPeriodDate={leakPeriodDate}
                 loading={graphLoading}
-                isLegacy={isLegacy}
+                isStandardMode={isStandardMode}
                 measuresHistory={measuresHistory}
                 metrics={metrics}
                 project={project.key}
index f059e20362770a12e6ead7e09daf934ca3babe35..fa05b8f030319c10d8f1121d16ca2679a904ba5c 100644 (file)
@@ -55,7 +55,7 @@ import { PROJECT_ACTIVITY_GRAPH } from './ProjectActivityApp';
 
 interface Props {
   analyses: ParsedAnalysis[];
-  isLegacy?: boolean;
+  isStandardMode?: boolean;
   leakPeriodDate?: Date;
   loading: boolean;
   measuresHistory: MeasureHistory[];
@@ -219,7 +219,7 @@ export default class ProjectActivityGraphs extends React.PureComponent<Props, St
   };
 
   renderQualitiesMetricInfoMessage = () => {
-    const { measuresHistory, isLegacy } = this.props;
+    const { measuresHistory, isStandardMode } = this.props;
 
     const qualityMeasuresHistory = measuresHistory.find((history) =>
       CCT_SOFTWARE_QUALITY_METRICS.includes(history.metric),
@@ -230,7 +230,7 @@ export default class ProjectActivityGraphs extends React.PureComponent<Props, St
 
     if (
       this.hasGaps(qualityMeasuresHistory) ||
-      (!isLegacy && this.hasGaps(ratingQualityMeasuresHistory))
+      (!isStandardMode && this.hasGaps(ratingQualityMeasuresHistory))
     ) {
       return (
         <FlagMessage variant="info">
index f245ee977fe9d4455e39357dcc3fc6415834f897..ce5aedb63bd131b69c31a810be616d378b15c112 100644 (file)
@@ -84,7 +84,7 @@ describe('formatDuration', () => {
 
 describe('fetchProjects', () => {
   it('correctly converts the passed arguments to the desired query format', async () => {
-    await utils.fetchProjects({ isFavorite: true, query: {}, isLegacy: true });
+    await utils.fetchProjects({ isFavorite: true, query: {}, isStandardMode: true });
 
     expect(searchProjects).toHaveBeenCalledWith({
       f: 'analysisDate,leakPeriodDate',
@@ -103,7 +103,7 @@ describe('fetchProjects', () => {
         incorrect_property: 'should not appear in post data',
         search: 'foo',
       },
-      isLegacy: true,
+      isStandardMode: true,
     });
 
     expect(searchProjects).toHaveBeenCalledWith({
@@ -116,7 +116,7 @@ describe('fetchProjects', () => {
   });
 
   it('correctly converts the passed arguments to the desired query format for non legacy', async () => {
-    await utils.fetchProjects({ isFavorite: true, query: {}, isLegacy: false });
+    await utils.fetchProjects({ isFavorite: true, query: {}, isStandardMode: false });
 
     expect(searchProjects).toHaveBeenCalledWith({
       f: 'analysisDate,leakPeriodDate',
@@ -135,7 +135,7 @@ describe('fetchProjects', () => {
         incorrect_property: 'should not appear in post data',
         search: 'foo',
       },
-      isLegacy: false,
+      isStandardMode: false,
     });
 
     expect(searchProjects).toHaveBeenCalledWith({
@@ -165,7 +165,7 @@ describe('fetchProjects', () => {
       paging: { total: 2 },
     });
 
-    await utils.fetchProjects({ isFavorite: true, query: {}, isLegacy: true }).then((r) => {
+    await utils.fetchProjects({ isFavorite: true, query: {}, isStandardMode: true }).then((r) => {
       expect(r).toEqual({
         facets: {
           new_coverage: { NO_DATA: 0 },
index 3d9eeead93c00bf177d7d1767c81d81d04c991fb..d08bc398621805ce1c33f4fe41f11c3557e47eb8 100644 (file)
@@ -44,7 +44,7 @@ import handleRequiredAuthentication from '../../../helpers/handleRequiredAuthent
 import { translate } from '../../../helpers/l10n';
 import { get, save } from '../../../helpers/storage';
 import { isDefined } from '../../../helpers/types';
-import { useIsLegacyCCTMode } from '../../../queries/settings';
+import { useStandardExperienceMode } from '../../../queries/settings';
 import { AppState } from '../../../types/appstate';
 import { CurrentUser, isLoggedIn } from '../../../types/users';
 import { Query, hasFilterParams, parseUrlQuery } from '../query';
@@ -59,7 +59,7 @@ interface Props {
   appState: AppState;
   currentUser: CurrentUser;
   isFavorite: boolean;
-  isLegacy: boolean;
+  isStandardMode: boolean;
   location: Location;
   router: Router;
 }
@@ -106,21 +106,24 @@ export class AllProjects extends React.PureComponent<Props, State> {
   }
 
   fetchMoreProjects = () => {
-    const { isFavorite, isLegacy } = this.props;
+    const { isFavorite, isStandardMode } = this.props;
     const { pageIndex, projects, query } = this.state;
 
     if (isDefined(pageIndex) && pageIndex !== 0 && projects && Object.keys(query).length !== 0) {
       this.setState({ loading: true });
 
-      fetchProjects({ isFavorite, query, pageIndex: pageIndex + 1, isLegacy }).then((response) => {
-        if (this.mounted) {
-          this.setState({
-            loading: false,
-            pageIndex: pageIndex + 1,
-            projects: [...projects, ...response.projects],
-          });
-        }
-      }, this.stopLoading);
+      fetchProjects({ isFavorite, query, pageIndex: pageIndex + 1, isStandardMode }).then(
+        (response) => {
+          if (this.mounted) {
+            this.setState({
+              loading: false,
+              pageIndex: pageIndex + 1,
+              projects: [...projects, ...response.projects],
+            });
+          }
+        },
+        this.stopLoading,
+      );
     }
   };
 
@@ -175,14 +178,14 @@ export class AllProjects extends React.PureComponent<Props, State> {
   };
 
   handleQueryChange() {
-    const { isFavorite, isLegacy } = this.props;
+    const { isFavorite, isStandardMode } = this.props;
 
     const queryRaw = this.props.location.query;
     const query = parseUrlQuery(queryRaw);
 
     this.setState({ loading: true, query });
 
-    fetchProjects({ isFavorite, query, isLegacy }).then((response) => {
+    fetchProjects({ isFavorite, query, isStandardMode }).then((response) => {
       // We ignore the request if the query changed since the time it was initiated
       // If that happened, another query will be initiated anyway
       if (this.mounted && queryRaw === this.props.location.query) {
@@ -204,10 +207,10 @@ export class AllProjects extends React.PureComponent<Props, State> {
   };
 
   loadSearchResultCount = (property: string, values: string[]) => {
-    const { isFavorite, isLegacy } = this.props;
+    const { isFavorite, isStandardMode } = this.props;
     const { query = {} } = this.state;
 
-    const data = convertToQueryData({ ...query, [property]: values }, isFavorite, isLegacy, {
+    const data = convertToQueryData({ ...query, [property]: values }, isFavorite, isStandardMode, {
       ps: 1,
       facets: property,
     });
@@ -352,10 +355,10 @@ function getStorageOptions() {
   return options;
 }
 
-function AllProjectsWrapper(props: Readonly<Omit<Props, 'isLegacy'>>) {
+function AllProjectsWrapper(props: Readonly<Omit<Props, 'isStandardMode'>>) {
   const [searchParams, setSearchParams] = useSearchParams();
   const savedOptions = getStorageOptions();
-  const { data: isLegacy, isLoading } = useIsLegacyCCTMode();
+  const { data: isStandardMode, isLoading } = useStandardExperienceMode();
 
   React.useEffect(
     () => {
@@ -374,7 +377,7 @@ function AllProjectsWrapper(props: Readonly<Omit<Props, 'isLegacy'>>) {
 
   return (
     <Spinner isLoading={isLoading}>
-      <AllProjects {...props} isLegacy={isLegacy ?? false} />
+      <AllProjects {...props} isStandardMode={isStandardMode ?? false} />
     </Spinner>
   );
 }
index 19dfe38e4dc19cca2a611dd865816ced81eec060..179b9b1bb6fdb533b7f00a7806e93fd3364de29a 100644 (file)
@@ -31,7 +31,7 @@ import RatingComponent from '../../../../app/components/metrics/RatingComponent'
 import { duplicationRatingConverter } from '../../../../components/measure/utils';
 import { translate } from '../../../../helpers/l10n';
 import { isDefined } from '../../../../helpers/types';
-import { useIsLegacyCCTMode } from '../../../../queries/settings';
+import { useStandardExperienceMode } from '../../../../queries/settings';
 import { Dict } from '../../../../types/types';
 import ProjectCardMeasure from './ProjectCardMeasure';
 
@@ -116,7 +116,7 @@ function renderDuplication(props: ProjectCardMeasuresProps) {
   );
 }
 
-function renderRatings(props: ProjectCardMeasuresProps, isLegacy: boolean) {
+function renderRatings(props: ProjectCardMeasuresProps, isStandardMode: boolean) {
   const { isNewCode, measures, componentKey } = props;
 
   const measuresByCodeLeak = isNewCode
@@ -124,11 +124,11 @@ function renderRatings(props: ProjectCardMeasuresProps, isLegacy: boolean) {
     : [
         {
           iconLabel: translate(
-            `metric.${isLegacy ? MetricKey.vulnerabilities : MetricKey.security_issues}.short_name`,
+            `metric.${isStandardMode ? MetricKey.vulnerabilities : MetricKey.security_issues}.short_name`,
           ),
           noShrink: true,
           metricKey:
-            isLegacy || measures[MetricKey.security_issues] === undefined
+            isStandardMode || measures[MetricKey.security_issues] === undefined
               ? MetricKey.vulnerabilities
               : MetricKey.security_issues,
           metricRatingKey: MetricKey.security_rating,
@@ -136,10 +136,10 @@ function renderRatings(props: ProjectCardMeasuresProps, isLegacy: boolean) {
         },
         {
           iconLabel: translate(
-            `metric.${isLegacy ? MetricKey.bugs : MetricKey.reliability_issues}.short_name`,
+            `metric.${isStandardMode ? MetricKey.bugs : MetricKey.reliability_issues}.short_name`,
           ),
           metricKey:
-            isLegacy || measures[MetricKey.reliability_issues] === undefined
+            isStandardMode || measures[MetricKey.reliability_issues] === undefined
               ? MetricKey.bugs
               : MetricKey.reliability_issues,
           metricRatingKey: MetricKey.reliability_rating,
@@ -147,10 +147,10 @@ function renderRatings(props: ProjectCardMeasuresProps, isLegacy: boolean) {
         },
         {
           iconLabel: translate(
-            `metric.${isLegacy ? MetricKey.code_smells : MetricKey.maintainability_issues}.short_name`,
+            `metric.${isStandardMode ? MetricKey.code_smells : MetricKey.maintainability_issues}.short_name`,
           ),
           metricKey:
-            isLegacy || measures[MetricKey.maintainability_issues] === undefined
+            isStandardMode || measures[MetricKey.maintainability_issues] === undefined
               ? MetricKey.code_smells
               : MetricKey.maintainability_issues,
           metricRatingKey: MetricKey.sqale_rating,
@@ -202,7 +202,7 @@ function renderRatings(props: ProjectCardMeasuresProps, isLegacy: boolean) {
 
 export default function ProjectCardMeasures(props: ProjectCardMeasuresProps) {
   const { isNewCode, measures, componentQualifier } = props;
-  const { data: isLegacy } = useIsLegacyCCTMode();
+  const { data: isStandardMode } = useStandardExperienceMode();
 
   const { ncloc } = measures;
 
@@ -218,7 +218,7 @@ export default function ProjectCardMeasures(props: ProjectCardMeasuresProps) {
 
   const measureList = [
     renderNewIssues(props),
-    ...renderRatings(props, !!isLegacy),
+    ...renderRatings(props, !!isStandardMode),
     renderCoverage(props),
     renderDuplication(props),
   ].filter(isDefined);
index 5a0b704345b81bcc026ff46d9592a852f33981be..a756bb4e0c37e42959e4013cdd28c48e4df5af03 100644 (file)
@@ -25,7 +25,7 @@ import { formatMeasure } from '~sonar-aligned/helpers/measures';
 import { MetricType } from '~sonar-aligned/types/metrics';
 import { RawQuery } from '~sonar-aligned/types/router';
 import { translate, translateWithParameters } from '../../../helpers/l10n';
-import { useIsLegacyCCTMode } from '../../../queries/settings';
+import { useStandardExperienceMode } from '../../../queries/settings';
 import { Facet } from '../types';
 import RangeFacetBase from './RangeFacetBase';
 
@@ -40,7 +40,7 @@ interface Props {
 
 export default function RatingFacet(props: Readonly<Props>) {
   const { facet, maxFacetValue, name, property, value } = props;
-  const { data: isLegacy } = useIsLegacyCCTMode();
+  const { data: isStandardMode } = useStandardExperienceMode();
 
   const renderAccessibleLabel = React.useCallback(
     (option: number) => {
@@ -66,7 +66,7 @@ export default function RatingFacet(props: Readonly<Props>) {
       facet={facet}
       header={translate('metric_domain', name)}
       description={
-        hasDescription(property, isLegacy)
+        hasDescription(property, isStandardMode)
           ? translate(`projects.facets.${property.replace('new_', '')}.description`)
           : undefined
       }
@@ -82,12 +82,12 @@ export default function RatingFacet(props: Readonly<Props>) {
   );
 }
 
-const hasDescription = (property: string, isLegacy = false) => {
+const hasDescription = (property: string, isStandardMode = false) => {
   return [
     'maintainability',
     'new_maintainability',
     'security_review',
-    ...(isLegacy ? ['security', 'new_security', 'reliability', 'new_reliability'] : []),
+    ...(isStandardMode ? ['security', 'new_security', 'reliability', 'new_reliability'] : []),
   ].includes(property);
 };
 
@@ -99,7 +99,7 @@ function RatingOption({
   option,
   property,
 }: Readonly<{ option: string | number; property: string }>) {
-  const { data: isLegacy, isLoading } = useIsLegacyCCTMode();
+  const { data: isStandardMode, isLoading } = useStandardExperienceMode();
   const intl = useIntl();
 
   const ratingFormatted = formatMeasure(option, MetricType.Rating);
@@ -114,7 +114,7 @@ function RatingOption({
       />
       <span className="sw-ml-2">
         {intl.formatMessage({
-          id: `projects.facets.rating_option.${propertyWithoutPrefix}${isLegacy && isSecurityOrReliability ? '.legacy' : ''}.${option}`,
+          id: `projects.facets.rating_option.${propertyWithoutPrefix}${isStandardMode && isSecurityOrReliability ? '.legacy' : ''}.${option}`,
         })}
       </span>
     </Spinner>
index 0a6edbb1563a587ef3223551a047bfbec4bcb82c..cef18e8f55b2f9a2c53f2d78fc7ac3de7f56eb29 100644 (file)
@@ -18,6 +18,7 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { ComponentQualifier } from '~sonar-aligned/types/component';
+import { MetricKey } from '~sonar-aligned/types/metrics';
 import { RawQuery } from '~sonar-aligned/types/router';
 import { propertyToMetricMap, propertyToMetricMapLegacy } from './utils';
 
@@ -59,12 +60,12 @@ export function parseUrlQuery(urlQuery: RawQuery): Query {
     new_security_review: getAsNumericRating(urlQuery['new_security_review']),
     maintainability: getAsNumericRating(urlQuery['maintainability']),
     new_maintainability: getAsNumericRating(urlQuery['new_maintainability']),
-    coverage: getAsNumericRating(urlQuery['coverage']),
-    new_coverage: getAsNumericRating(urlQuery['new_coverage']),
+    coverage: getAsNumericRating(urlQuery[MetricKey.coverage]),
+    new_coverage: getAsNumericRating(urlQuery[MetricKey.new_coverage]),
     duplications: getAsNumericRating(urlQuery['duplications']),
     new_duplications: getAsNumericRating(urlQuery['new_duplications']),
     size: getAsNumericRating(urlQuery['size']),
-    new_lines: getAsNumericRating(urlQuery['new_lines']),
+    new_lines: getAsNumericRating(urlQuery[MetricKey.new_lines]),
     languages: getAsStringArray(urlQuery['languages']),
     tags: getAsStringArray(urlQuery['tags']),
     qualifier: getAsQualifier(urlQuery['qualifier']),
@@ -74,7 +75,11 @@ export function parseUrlQuery(urlQuery: RawQuery): Query {
   };
 }
 
-export function convertToFilter(query: Query, isFavorite: boolean, isLegacy: boolean): string {
+export function convertToFilter(
+  query: Query,
+  isFavorite: boolean,
+  isStandardMode: boolean,
+): string {
   const conditions: string[] = [];
 
   if (isFavorite) {
@@ -82,19 +87,19 @@ export function convertToFilter(query: Query, isFavorite: boolean, isLegacy: boo
   }
 
   if (query['gate'] != null) {
-    conditions.push(mapPropertyToMetric('gate', isLegacy) + ' = ' + query['gate']);
+    conditions.push(`${mapPropertyToMetric('gate', isStandardMode)}=${query['gate']}`);
   }
 
-  ['coverage', 'new_coverage'].forEach((property) =>
-    pushMetricToArray(query, property, conditions, convertCoverage, isLegacy),
+  [MetricKey.coverage, MetricKey.new_coverage].forEach((property) =>
+    pushMetricToArray(query, property, conditions, convertCoverage, isStandardMode),
   );
 
   ['duplications', 'new_duplications'].forEach((property) =>
-    pushMetricToArray(query, property, conditions, convertDuplications, isLegacy),
+    pushMetricToArray(query, property, conditions, convertDuplications, isStandardMode),
   );
 
   ['size', 'new_lines'].forEach((property) =>
-    pushMetricToArray(query, property, conditions, convertSize, isLegacy),
+    pushMetricToArray(query, property, conditions, convertSize, isStandardMode),
   );
 
   [
@@ -107,15 +112,15 @@ export function convertToFilter(query: Query, isFavorite: boolean, isLegacy: boo
     'new_security_review',
     'new_maintainability',
   ].forEach((property) =>
-    pushMetricToArray(query, property, conditions, convertIssuesRating, isLegacy),
+    pushMetricToArray(query, property, conditions, convertIssuesRating, isStandardMode),
   );
 
   ['languages', 'tags', 'qualifier'].forEach((property) =>
-    pushMetricToArray(query, property, conditions, convertArrayMetric, isLegacy),
+    pushMetricToArray(query, property, conditions, convertArrayMetric, isStandardMode),
   );
 
   if (query['search'] != null) {
-    conditions.push(`${mapPropertyToMetric('search', isLegacy)} = "${query['search']}"`);
+    conditions.push(`${mapPropertyToMetric('search', isStandardMode)} = "${query['search']}"`);
   }
 
   return conditions.join(' and ');
@@ -235,8 +240,11 @@ function convertSize(metric: string, size: number): string {
   }
 }
 
-function mapPropertyToMetric(property?: string, isLegacy = false): string | undefined {
-  return property && (isLegacy ? propertyToMetricMapLegacy : propertyToMetricMap)[property];
+function mapPropertyToMetric(property?: string, isStandardMode = false): string | undefined {
+  if (property === undefined) {
+    return;
+  }
+  return (isStandardMode ? propertyToMetricMapLegacy : propertyToMetricMap)[property];
 }
 
 function pushMetricToArray(
@@ -244,9 +252,9 @@ function pushMetricToArray(
   property: string,
   conditionsArray: string[],
   convertFunction: (metric: string, value: Query[string]) => string,
-  isLegacy: boolean,
+  isStandardMode: boolean,
 ): void {
-  const metric = mapPropertyToMetric(property, isLegacy);
+  const metric = mapPropertyToMetric(property, isStandardMode);
   if (query[property] !== undefined && metric !== undefined) {
     conditionsArray.push(convertFunction(metric, query[property]));
   }
index 709e2626f52b5d0c351fcd7ae94b911797503dea..b32e4ca015d5ba4b8355cc4b0af4ecf1824eef25 100644 (file)
@@ -206,19 +206,19 @@ export function fetchProjects({
   isFavorite,
   query,
   pageIndex = 1,
-  isLegacy,
+  isStandardMode,
 }: {
   isFavorite: boolean;
-  isLegacy: boolean;
+  isStandardMode: boolean;
   pageIndex?: number;
   query: Query;
 }) {
   const ps = PAGE_SIZE;
 
-  const data = convertToQueryData(query, isFavorite, isLegacy, {
+  const data = convertToQueryData(query, isFavorite, isStandardMode, {
     p: pageIndex > 1 ? pageIndex : undefined,
     ps,
-    facets: defineFacets(query, isLegacy).join(),
+    facets: defineFacets(query, isStandardMode).join(),
     f: 'analysisDate,leakPeriodDate',
   });
 
@@ -226,7 +226,7 @@ export function fetchProjects({
     .then((response) => Promise.all([Promise.resolve(response), fetchScannableProjects()]))
     .then(([{ components, facets, paging }, { scannableProjects }]) => {
       return {
-        facets: getFacetsMap(facets, isLegacy),
+        facets: getFacetsMap(facets, isStandardMode),
         projects: components.map((component) => ({
           ...component,
           isScannable: scannableProjects.find((p) => p.key === component.key) !== undefined,
@@ -244,23 +244,23 @@ export function defineMetrics(query: Query): string[] {
   return METRICS;
 }
 
-function defineFacets(query: Query, isLegacy: boolean): string[] {
+function defineFacets(query: Query, isStandardMode: boolean): string[] {
   if (query.view === 'leak') {
-    return isLegacy ? LEGACY_LEAK_FACETS : LEAK_FACETS;
+    return isStandardMode ? LEGACY_LEAK_FACETS : LEAK_FACETS;
   }
 
-  return isLegacy ? LEGACY_FACETS : FACETS;
+  return isStandardMode ? LEGACY_FACETS : FACETS;
 }
 
 export function convertToQueryData(
   query: Query,
   isFavorite: boolean,
-  isLegacy: boolean,
+  isStandardMode: boolean,
   defaultData = {},
 ) {
   const data: RequestData = { ...defaultData };
-  const filter = convertToFilter(query, isFavorite, isLegacy);
-  const sort = convertToSorting(query, isLegacy);
+  const filter = convertToFilter(query, isFavorite, isStandardMode);
+  const sort = convertToSorting(query, isStandardMode);
 
   if (filter) {
     data.filter = filter;
@@ -321,11 +321,11 @@ export const propertyToMetricMap: Dict<string | undefined> = {
   new_maintainability: 'new_software_quality_maintainability_rating',
 };
 
-function getFacetsMap(facets: Facet[], isLegacy: boolean) {
+function getFacetsMap(facets: Facet[], isStandardMode: boolean) {
   const map: Dict<Dict<number>> = {};
 
   facets.forEach((facet) => {
-    const property = invert(isLegacy ? propertyToMetricMapLegacy : propertyToMetricMap)[
+    const property = invert(isStandardMode ? propertyToMetricMapLegacy : propertyToMetricMap)[
       facet.property
     ];
     const { values } = facet;
@@ -342,16 +342,16 @@ function getFacetsMap(facets: Facet[], isLegacy: boolean) {
 
 export function convertToSorting(
   { sort }: Query,
-  isLegacy: boolean,
+  isStandardMode: boolean,
 ): { asc?: boolean; s?: string } {
   if (sort?.startsWith('-')) {
     return {
-      s: (isLegacy ? propertyToMetricMapLegacy : propertyToMetricMap)[sort.substring(1)],
+      s: (isStandardMode ? propertyToMetricMapLegacy : propertyToMetricMap)[sort.substring(1)],
       asc: false,
     };
   }
 
-  return { s: (isLegacy ? propertyToMetricMapLegacy : propertyToMetricMap)[sort ?? ''] };
+  return { s: (isStandardMode ? propertyToMetricMapLegacy : propertyToMetricMap)[sort ?? ''] };
 }
 
 const ONE_MINUTE = 60000;
index 5ace834dc301649e37965f7cf41c332359923e1b..9af91ac5e323b8c54b3562b26a45069fd2c4f215 100644 (file)
@@ -27,7 +27,7 @@ import IssueSeverityIcon from '../../../components/icon-mappers/IssueSeverityIco
 import { CleanCodeAttributePill } from '../../../components/shared/CleanCodeAttributePill';
 import SoftwareImpactPillList from '../../../components/shared/SoftwareImpactPillList';
 import { getRulesUrl } from '../../../helpers/urls';
-import { useIsLegacyCCTMode } from '../../../queries/settings';
+import { useStandardExperienceMode } from '../../../queries/settings';
 import { IssueSeverity } from '../../../types/issues';
 import { Dict } from '../../../types/types';
 import ComparisonResultActivation from './ComparisonResultActivation';
@@ -224,9 +224,9 @@ export default function ComparisonResults(props: Readonly<Props>) {
 }
 
 function RuleCell({ rule, severity }: Readonly<{ rule: RuleCompare; severity?: string }>) {
-  const { data: isLegacy } = useIsLegacyCCTMode();
+  const { data: isStandardMode } = useStandardExperienceMode();
   const shouldRenderSeverity =
-    isLegacy &&
+    isStandardMode &&
     Boolean(severity) &&
     rule.left &&
     rule.right &&
@@ -238,7 +238,7 @@ function RuleCell({ rule, severity }: Readonly<{ rule: RuleCompare; severity?: s
       <LinkStandalone className="sw-ml-1" to={getRulesUrl({ rule_key: rule.key, open: rule.key })}>
         {rule.name}
       </LinkStandalone>
-      {!isLegacy && (rule.cleanCodeAttributeCategory || rule.impacts.length > 0) && (
+      {!isStandardMode && (rule.cleanCodeAttributeCategory || rule.impacts.length > 0) && (
         <ul className="sw-mt-3 sw-flex sw-items-center">
           {rule.cleanCodeAttributeCategory && (
             <li>
index eebcabef175f3483efd42102560f027e8b5b4a8b..039fc4a7afe508159c1ce6e38c3d3aa1513f60ff 100644 (file)
@@ -33,9 +33,10 @@ import DocHelpTooltip from '~sonar-aligned/components/controls/DocHelpTooltip';
 import { translate } from '../../../helpers/l10n';
 import { isDefined } from '../../../helpers/types';
 import { getRulesUrl } from '../../../helpers/urls';
+import { StaleTime } from '../../../queries/common';
 import { useGetQualityProfile } from '../../../queries/quality-profiles';
 import { useSearchRulesQuery } from '../../../queries/rules';
-import { useIsLegacyCCTMode } from '../../../queries/settings';
+import { useStandardExperienceMode } from '../../../queries/settings';
 import { CleanCodeAttributeCategory, SoftwareQuality } from '../../../types/clean-code-taxonomy';
 import { SearchRulesResponse } from '../../../types/coding-rules';
 import { RulesFacetName } from '../../../types/rules';
@@ -55,28 +56,31 @@ interface ByType {
 }
 
 export default function ProfileRules({ profile }: Readonly<Props>) {
-  const { data: isLegacy } = useIsLegacyCCTMode();
+  const { data: isStandardMode } = useStandardExperienceMode();
   const activateMoreUrl = getRulesUrl({ qprofile: profile.key, activation: 'false' });
   const { actions = {} } = profile;
 
-  const { data: allRules, isLoading: isAllRulesLoading } = useSearchRulesQuery({
-    ps: 1,
-    languages: profile.language,
-    facets: isLegacy
-      ? `${RulesFacetName.Types}`
-      : `${RulesFacetName.CleanCodeAttributeCategories},${RulesFacetName.ImpactSoftwareQualities}`,
-  });
+  const { data: allRules, isLoading: isAllRulesLoading } = useSearchRulesQuery(
+    {
+      ps: 1,
+      languages: profile.language,
+      facets: isStandardMode
+        ? `${RulesFacetName.Types}`
+        : `${RulesFacetName.CleanCodeAttributeCategories},${RulesFacetName.ImpactSoftwareQualities}`,
+    },
+    { staleTime: StaleTime.LIVE },
+  );
 
   const { data: activatedRules, isLoading: isActivatedRulesLoading } = useSearchRulesQuery(
     {
       ps: 1,
       activation: 'true',
-      facets: isLegacy
+      facets: isStandardMode
         ? `${RulesFacetName.Types}`
         : `${RulesFacetName.CleanCodeAttributeCategories},${RulesFacetName.ImpactSoftwareQualities}`,
       qprofile: profile.key,
     },
-    { enabled: !!allRules },
+    { enabled: !!allRules, staleTime: StaleTime.LIVE },
   );
 
   const { data: sonarWayDiff, isLoading: isShowProfileLoading } = useGetQualityProfile(
@@ -123,7 +127,7 @@ export default function ProfileRules({ profile }: Readonly<Props>) {
           {translate('quality_profile.rules.breakdown')}
         </Heading>
 
-        {isLegacy && (
+        {isStandardMode && (
           <Table
             columnCount={3}
             columnWidths={['50%', '25%', '25%']}
@@ -153,7 +157,7 @@ export default function ProfileRules({ profile }: Readonly<Props>) {
           </Table>
         )}
 
-        {!isLegacy && (
+        {!isStandardMode && (
           <>
             <Table
               className="sw-mb-4"
index 057bebd138be19b8c98a05c9241d3ffdebbcfca3..456d1c3f7e6d7067be575e5b1309b7cabe017884 100644 (file)
@@ -372,7 +372,7 @@ export default function GitHubAuthenticationTab() {
         {isFormOpen && (
           <GitHubConfigurationForm
             gitHubConfiguration={gitHubConfiguration}
-            isLegacyConfiguration={hasLegacyConfiguration}
+            isStandardModeConfiguration={hasLegacyConfiguration}
             onClose={() => {
               setIsFormOpen(false);
             }}
index 693953ba25f9b4b1f11023fb37923a75468e61d4..e4b71b2ea8128ad01f101189c74aea7fd0f94c3c 100644 (file)
@@ -48,7 +48,7 @@ import {
 
 interface Props {
   gitHubConfiguration?: GitHubConfigurationResponse;
-  isLegacyConfiguration: boolean;
+  isStandardModeConfiguration: boolean;
   onClose: () => void;
 }
 
@@ -64,7 +64,7 @@ interface FormData {
 }
 
 export default function GitHubConfigurationForm(props: Readonly<Props>) {
-  const { gitHubConfiguration, isLegacyConfiguration, onClose } = props;
+  const { gitHubConfiguration, isStandardModeConfiguration, onClose } = props;
   const isCreate = gitHubConfiguration === undefined;
 
   const [errors, setErrors] = useState<Partial<Record<GitHubAuthFormFields, ErrorValue>>>({});
@@ -158,13 +158,13 @@ export default function GitHubConfigurationForm(props: Readonly<Props>) {
     }
   };
 
-  const helpMessage = isLegacyConfiguration ? `legacy_help.${AlmKeys.GitHub}` : 'help';
+  const helpMessage = isStandardModeConfiguration ? `legacy_help.${AlmKeys.GitHub}` : 'help';
 
   const formBody = (
     <form id={FORM_ID} onSubmit={handleSubmit}>
       <FlagMessage
         className="sw-w-full sw-mb-8"
-        variant={isLegacyConfiguration ? 'warning' : 'info'}
+        variant={isStandardModeConfiguration ? 'warning' : 'info'}
       >
         <span>
           <FormattedMessage
@@ -192,7 +192,7 @@ export default function GitHubConfigurationForm(props: Readonly<Props>) {
               onFieldChange={(_, value) => {
                 setFormData((prev) => ({ ...prev, [key]: { ...prev[key], value } }));
               }}
-              isNotSet={isCreate || isLegacyConfiguration}
+              isNotSet={isCreate || isStandardModeConfiguration}
               error={errors[key]?.message}
             />
           </div>
index 2915ce50b294950f8754575909465b5da4078d9d..ac85d31cb629ed5f8d2e92e155ee6bf2dab73554 100644 (file)
@@ -58,7 +58,7 @@ import { omitNil } from '../../helpers/request';
 import { getBaseUrl } from '../../helpers/system';
 import { isDefined } from '../../helpers/types';
 import { getBranchLikeUrl, getCodeUrl } from '../../helpers/urls';
-import { useIsLegacyCCTMode } from '../../queries/settings';
+import { useStandardExperienceMode } from '../../queries/settings';
 import type { BranchLike } from '../../types/branch-like';
 import { IssueType } from '../../types/issues';
 import type { Measure, SourceViewerFile } from '../../types/types';
@@ -76,7 +76,7 @@ interface Props {
 
 export default function SourceViewerHeader(props: Readonly<Props>) {
   const intl = useIntl();
-  const { data: isLegacy = false } = useIsLegacyCCTMode();
+  const { data: isStandardMode = false } = useStandardExperienceMode();
 
   const { showMeasures, branchLike, hidePinOption, openComponent, componentMeasures } = props;
   const { key, measures, path, project, projectName, q } = props.sourceViewerFile;
@@ -87,7 +87,7 @@ export default function SourceViewerHeader(props: Readonly<Props>) {
   const rawSourcesLink = `${getBaseUrl()}/api/sources/raw?${query}`;
 
   const renderIssueMeasures = () => {
-    const areCCTMeasuresComputed = !isLegacy && areCCTMeasuresComputedFn(componentMeasures);
+    const areCCTMeasuresComputed = !isStandardMode && areCCTMeasuresComputedFn(componentMeasures);
 
     return (
       componentMeasures &&
@@ -115,7 +115,7 @@ export default function SourceViewerHeader(props: Readonly<Props>) {
               });
 
               const qualityTitle = intl.formatMessage({
-                id: `metric.${isLegacy ? deprecatedMetric : metric}.short_name`,
+                id: `metric.${isStandardMode ? deprecatedMetric : metric}.short_name`,
               });
 
               return (
index a7d77852d736c810bf767e2b8cbbc13b87bd77a9..17561817e60e52c7077f1c5d51564caf0d784830 100644 (file)
@@ -22,7 +22,7 @@ import { uniq } from 'lodash';
 import * as React from 'react';
 import { useIntl } from 'react-intl';
 import Tooltip from '../../../components/controls/Tooltip';
-import { useIsLegacyCCTMode } from '../../../queries/settings';
+import { useStandardExperienceMode } from '../../../queries/settings';
 import { Issue, SourceLine } from '../../../types/types';
 
 const MOUSE_LEAVE_DELAY = 0.25;
@@ -39,7 +39,7 @@ export function LineIssuesIndicator(props: LineIssuesIndicatorProps) {
   const { issues, issuesOpen, line, as = 'td' } = props;
   const hasIssues = issues.length > 0;
   const intl = useIntl();
-  const { data: isLegacy } = useIsLegacyCCTMode();
+  const { data: isStandardMode } = useStandardExperienceMode();
 
   if (!hasIssues) {
     return <LineMeta />;
@@ -49,7 +49,7 @@ export function LineIssuesIndicator(props: LineIssuesIndicatorProps) {
   const issueTypes = uniq(issues.map((issue) => issue.type));
   let tooltipContent;
 
-  if (isLegacy ? issueTypes.length > 1 : issueAttributeCategories.length > 1) {
+  if (isStandardMode ? issueTypes.length > 1 : issueAttributeCategories.length > 1) {
     tooltipContent = intl.formatMessage(
       { id: 'source_viewer.issues_on_line.multiple_issues' },
       { show: !issuesOpen },
@@ -57,7 +57,7 @@ export function LineIssuesIndicator(props: LineIssuesIndicatorProps) {
   } else {
     tooltipContent = intl.formatMessage(
       {
-        id: `source_viewer.issues_on_line.multiple_issues_same_category${isLegacy ? '.legacy' : ''}`,
+        id: `source_viewer.issues_on_line.multiple_issues_same_category${isStandardMode ? '.legacy' : ''}`,
       },
       {
         show: !issuesOpen,
index b1768446382477e268fa05892c4b58e68c044640..ebcc1aa35506836aa9250e82c18d5312305fde22 100644 (file)
@@ -91,20 +91,24 @@ export function getSeriesMetricType(series: Serie[]) {
 export function getDisplayedHistoryMetrics(
   graph: GraphType,
   customMetrics: string[],
-  isLegacy = false,
+  isStandardMode = false,
 ) {
   if (isCustomGraph(graph)) {
     return customMetrics;
   }
 
-  return isLegacy ? LEGACY_GRAPHS_METRICS_DISPLAYED[graph] : GRAPHS_METRICS_DISPLAYED[graph];
+  return isStandardMode ? LEGACY_GRAPHS_METRICS_DISPLAYED[graph] : GRAPHS_METRICS_DISPLAYED[graph];
 }
 
-export function getHistoryMetrics(graph: GraphType, customMetrics: string[], isLegacy = false) {
+export function getHistoryMetrics(
+  graph: GraphType,
+  customMetrics: string[],
+  isStandardMode = false,
+) {
   if (isCustomGraph(graph)) {
     return customMetrics;
   }
-  return isLegacy ? LEGACY_GRAPHS_METRICS[graph] : GRAPHS_METRICS[graph];
+  return isStandardMode ? LEGACY_GRAPHS_METRICS[graph] : GRAPHS_METRICS[graph];
 }
 
 export function hasHistoryDataValue(series: Serie[]) {
index 0d42c729b264ff69e76f338f2f77a5ceb6c64f6f..9f3ce0ca77b997c98922229b8a5df1fcc41ca074 100644 (file)
@@ -27,7 +27,7 @@ import {
 } from 'design-system';
 import * as React from 'react';
 import { translate } from '../../helpers/l10n';
-import { useIsLegacyCCTMode } from '../../queries/settings';
+import { useStandardExperienceMode } from '../../queries/settings';
 import { SoftwareImpactSeverity } from '../../types/clean-code-taxonomy';
 import { IssueSeverity } from '../../types/issues';
 import { Dict } from '../../types/types';
@@ -51,7 +51,7 @@ const severityIcons: Dict<(props: IconProps) => React.ReactElement> = {
 };
 
 export default function SoftwareImpactSeverityIcon({ severity, ...iconProps }: Readonly<Props>) {
-  const { data: isLegacy } = useIsLegacyCCTMode();
+  const { data: isStandardMode } = useStandardExperienceMode();
   if (typeof severity !== 'string' || !severityIcons[severity]) {
     return null;
   }
@@ -62,7 +62,7 @@ export default function SoftwareImpactSeverityIcon({ severity, ...iconProps }: R
       {...iconProps}
       width={iconProps?.width ?? defaultIconSize}
       height={iconProps?.height ?? defaultIconSize}
-      aria-label={translate(isLegacy ? 'severity' : 'severity_impact', severity)}
+      aria-label={translate(isStandardMode ? 'severity' : 'severity_impact', severity)}
     />
   );
 }
index 73f51cee95e7fd6d150f841ca044835522e77bf0..46215799b4e6df6d7b233d3161fd6861647eaf9b 100644 (file)
@@ -19,7 +19,7 @@
  */
 import * as React from 'react';
 
-import { useIsLegacyCCTMode } from '../../../queries/settings';
+import { useStandardExperienceMode } from '../../../queries/settings';
 import { BranchLike } from '../../../types/branch-like';
 import { Issue } from '../../../types/types';
 import { CleanCodeAttributePill } from '../../shared/CleanCodeAttributePill';
@@ -33,7 +33,7 @@ export interface IssueTitleBarProps {
 
 export default function IssueTitleBar(props: Readonly<IssueTitleBarProps>) {
   const { issue, displayWhyIsThisAnIssue, branchLike } = props;
-  const { data: isLegacy } = useIsLegacyCCTMode();
+  const { data: isStandardMode } = useStandardExperienceMode();
 
   return (
     <div className="sw-mt-1 sw-flex sw-items-start sw-justify-between sw-gap-8">
@@ -45,7 +45,7 @@ export default function IssueTitleBar(props: Readonly<IssueTitleBarProps>) {
         />
       </div>
 
-      {!isLegacy && (
+      {!isStandardMode && (
         <CleanCodeAttributePill cleanCodeAttributeCategory={issue.cleanCodeAttributeCategory} />
       )}
     </div>
index b0bb17d6cbf9af281f23af219b514376bf31c3b3..c9dd40bf03a0a2ee4c227cbab81d571a46f22f2e 100644 (file)
@@ -22,7 +22,7 @@ import { FlagMessage } from 'design-system';
 import * as React from 'react';
 import { FormattedMessage, useIntl } from 'react-intl';
 import { DocLink } from '../../helpers/doc-links';
-import { useIsLegacyCCTMode } from '../../queries/settings';
+import { useStandardExperienceMode } from '../../queries/settings';
 import DocumentationLink from '../common/DocumentationLink';
 
 interface AnalysisMissingInfoMessageProps {
@@ -36,10 +36,10 @@ export default function AnalysisMissingInfoMessage({
   qualifier,
   className,
 }: Readonly<AnalysisMissingInfoMessageProps>) {
-  const { data: isLegacy, isLoading } = useIsLegacyCCTMode();
+  const { data: isStandardMode, isLoading } = useStandardExperienceMode();
   const intl = useIntl();
 
-  if (hide || isLoading || isLegacy) {
+  if (hide || isLoading || isStandardMode) {
     return null;
   }
 
index 5fb953f5a66df34f19a2f85a24111d2466b8e5ba..0275abea56c9868f956d6c03ded3c1ce38d20cae 100644 (file)
@@ -20,7 +20,7 @@
 import classNames from 'classnames';
 import React from 'react';
 import { translate } from '../../helpers/l10n';
-import { useIsLegacyCCTMode } from '../../queries/settings';
+import { useStandardExperienceMode } from '../../queries/settings';
 import {
   SoftwareImpact,
   SoftwareImpactSeverity,
@@ -54,7 +54,7 @@ export default function SoftwareImpactPillList({
   className,
   ...props
 }: Readonly<SoftwareImpactPillListProps>) {
-  const { data: isLegacy } = useIsLegacyCCTMode();
+  const { data: isStandardMode } = useStandardExperienceMode();
   const getQualityLabel = (quality: SoftwareQuality) => translate('software_quality', quality);
   const sortingFn = (a: SoftwareImpact, b: SoftwareImpact) => {
     if (a.severity !== b.severity) {
@@ -65,7 +65,7 @@ export default function SoftwareImpactPillList({
 
   return (
     <ul className={classNames('sw-flex sw-gap-2', className)} {...props}>
-      {!isLegacy &&
+      {!isStandardMode &&
         softwareImpacts
           .slice()
           .sort(sortingFn)
@@ -78,10 +78,10 @@ export default function SoftwareImpactPillList({
               />
             </li>
           ))}
-      {!isLegacy && softwareImpacts.length === 0 && issueType === 'SECURITY_HOTSPOT' && (
+      {!isStandardMode && softwareImpacts.length === 0 && issueType === 'SECURITY_HOTSPOT' && (
         <IssueTypePill severity={issueSeverity ?? IssueSeverity.Info} issueType={issueType} />
       )}
-      {isLegacy && issueType && issueSeverity && (
+      {isStandardMode && issueType && issueSeverity && (
         <IssueTypePill severity={issueSeverity} issueType={issueType} />
       )}
     </ul>
index 62c3e9d46c4fbb717aa54ea3be1e6f6811dc4ecf..d2273460103611d8c4e7eb8c29b53092bdb2635f 100644 (file)
@@ -25,14 +25,14 @@ import { SOFTWARE_QUALITY_RATING_METRICS_MAP } from './constants';
 export const mergeRatingMeasureHistory = (
   historyData: TimeMachineResponse | undefined,
   parseDateFn: (date: string) => Date,
-  isLegacy = false,
+  isStandardMode = false,
 ) => {
   const softwareQualityMeasures = Object.values(SOFTWARE_QUALITY_RATING_METRICS_MAP);
   const softwareQualityMeasuresMap = new Map<
     string,
     { history: { date: string; value?: string }[]; index: number; splitDate?: Date }
   >();
-  if (isLegacy) {
+  if (isStandardMode) {
     return (
       historyData?.measures
         ?.filter((m) => !softwareQualityMeasures.includes(m.metric))
index 07f83be487e9c8844d1c8899858fd0cbc7ae8b3b..2525d85133a74b2e5cff3d133b63b3b095a83828 100644 (file)
  * along with this program; if not, write to the Free Software Foundation,
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
-import {
-  queryOptions,
-  useMutation,
-  useQueryClient,
-} from '@tanstack/react-query';
+import { queryOptions, useMutation, useQueryClient } from '@tanstack/react-query';
 import { createRule, deleteRule, getRuleDetails, searchRules, updateRule } from '../api/rules';
 import { mapRestRuleToRule } from '../apps/coding-rules/utils';
 import { SearchRulesResponse } from '../types/coding-rules';
index 83d02cbaf81f12a18f48c09498185cb0387ec0ac..e9fb110dd44078a3c73d24d46412ba431f46359e 100644 (file)
@@ -57,7 +57,7 @@ export const useGetValueQuery = createQueryHook(
   },
 );
 
-export const useIsLegacyCCTMode = () => {
+export const useStandardExperienceMode = () => {
   return useGetValueQuery(
     { key: SettingsKey.MQRMode },
     { staleTime: Infinity, select: (data) => data?.value === 'false' },