aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-web/src
diff options
context:
space:
mode:
Diffstat (limited to 'server/sonar-web/src')
-rw-r--r--server/sonar-web/src/main/js/app/components/ChangeInCalculationPill.tsx6
-rw-r--r--server/sonar-web/src/main/js/app/components/ComponentContainer.tsx6
-rw-r--r--server/sonar-web/src/main/js/app/components/__tests__/CalculationChangeMessage-test.tsx2
-rw-r--r--server/sonar-web/src/main/js/app/components/__tests__/ComponentContainer-test.tsx2
-rw-r--r--server/sonar-web/src/main/js/app/components/calculation-notification/CalculationChangeMessage.tsx6
-rw-r--r--server/sonar-web/src/main/js/app/components/metrics/RatingComponent.tsx11
-rw-r--r--server/sonar-web/src/main/js/apps/code/components/CodeAppRenderer.tsx10
-rw-r--r--server/sonar-web/src/main/js/apps/code/components/ComponentMeasure.tsx6
-rw-r--r--server/sonar-web/src/main/js/apps/code/components/ComponentsHeader.tsx6
-rw-r--r--server/sonar-web/src/main/js/apps/coding-rules/components/FacetsList.tsx16
-rw-r--r--server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsHeaderSide.tsx28
-rw-r--r--server/sonar-web/src/main/js/apps/coding-rules/components/RuleListItem.tsx6
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/hooks.ts6
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/sidebar/DomainSubnavigation.tsx6
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/sidebar/Sidebar.tsx6
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/utils.ts14
-rw-r--r--server/sonar-web/src/main/js/apps/issues/components/IssueHeaderSide.tsx8
-rw-r--r--server/sonar-web/src/main/js/apps/issues/sidebar/Sidebar.tsx8
-rw-r--r--server/sonar-web/src/main/js/apps/overview/branches/ActivityPanel.tsx6
-rw-r--r--server/sonar-web/src/main/js/apps/overview/branches/BranchOverview.tsx6
-rw-r--r--server/sonar-web/src/main/js/apps/overview/branches/SoftwareImpactMeasureCard.tsx12
-rw-r--r--server/sonar-web/src/main/js/apps/overview/branches/SoftwareImpactMeasureRating.tsx6
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityApp.tsx17
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityAppRenderer.tsx6
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityGraphs.tsx6
-rw-r--r--server/sonar-web/src/main/js/apps/projects/__tests__/utils-test.ts10
-rw-r--r--server/sonar-web/src/main/js/apps/projects/components/AllProjects.tsx41
-rw-r--r--server/sonar-web/src/main/js/apps/projects/components/project-card/ProjectCardMeasures.tsx20
-rw-r--r--server/sonar-web/src/main/js/apps/projects/filters/RatingFacet.tsx14
-rw-r--r--server/sonar-web/src/main/js/apps/projects/query.ts40
-rw-r--r--server/sonar-web/src/main/js/apps/projects/utils.ts32
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonResults.tsx8
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRules.tsx30
-rw-r--r--server/sonar-web/src/main/js/apps/settings/components/authentication/GitHubAuthenticationTab.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/settings/components/authentication/GitHubConfigurationForm.tsx10
-rw-r--r--server/sonar-web/src/main/js/components/SourceViewer/SourceViewerHeader.tsx8
-rw-r--r--server/sonar-web/src/main/js/components/SourceViewer/components/LineIssuesIndicator.tsx8
-rw-r--r--server/sonar-web/src/main/js/components/activity-graph/utils.ts12
-rw-r--r--server/sonar-web/src/main/js/components/icon-mappers/SoftwareImpactSeverityIcon.tsx6
-rw-r--r--server/sonar-web/src/main/js/components/issue/components/IssueTitleBar.tsx6
-rw-r--r--server/sonar-web/src/main/js/components/shared/AnalysisMissingInfoMessage.tsx6
-rw-r--r--server/sonar-web/src/main/js/components/shared/SoftwareImpactPillList.tsx10
-rw-r--r--server/sonar-web/src/main/js/helpers/activity-graph.ts4
-rw-r--r--server/sonar-web/src/main/js/queries/rules.ts6
-rw-r--r--server/sonar-web/src/main/js/queries/settings.ts2
45 files changed, 255 insertions, 232 deletions
diff --git a/server/sonar-web/src/main/js/app/components/ChangeInCalculationPill.tsx b/server/sonar-web/src/main/js/app/components/ChangeInCalculationPill.tsx
index deb82e402fe..e8b3fc1340f 100644
--- a/server/sonar-web/src/main/js/app/components/ChangeInCalculationPill.tsx
+++ b/server/sonar-web/src/main/js/app/components/ChangeInCalculationPill.tsx
@@ -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;
}
diff --git a/server/sonar-web/src/main/js/app/components/ComponentContainer.tsx b/server/sonar-web/src/main/js/app/components/ComponentContainer.tsx
index 5df87de7d47..af79c64c70b 100644
--- a/server/sonar-web/src/main/js/app/components/ComponentContainer.tsx
+++ b/server/sonar-web/src/main/js/app/components/ComponentContainer.tsx
@@ -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');
diff --git a/server/sonar-web/src/main/js/app/components/__tests__/CalculationChangeMessage-test.tsx b/server/sonar-web/src/main/js/app/components/__tests__/CalculationChangeMessage-test.tsx
index 737f980634a..fa213e0394c 100644
--- a/server/sonar-web/src/main/js/app/components/__tests__/CalculationChangeMessage-test.tsx
+++ b/server/sonar-web/src/main/js/app/components/__tests__/CalculationChangeMessage-test.tsx
@@ -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();
diff --git a/server/sonar-web/src/main/js/app/components/__tests__/ComponentContainer-test.tsx b/server/sonar-web/src/main/js/app/components/__tests__/ComponentContainer-test.tsx
index 10b7e06c5e8..5facef0fe93 100644
--- a/server/sonar-web/src/main/js/app/components/__tests__/ComponentContainer-test.tsx
+++ b/server/sonar-web/src/main/js/app/components/__tests__/ComponentContainer-test.tsx
@@ -52,7 +52,7 @@ jest.mock('../../../api/components', () => ({
}));
jest.mock('../../../queries/settings', () => ({
- useIsLegacyCCTMode: jest.fn(),
+ useStandardExperienceMode: jest.fn(),
}));
jest.mock('../../../api/navigation', () => ({
diff --git a/server/sonar-web/src/main/js/app/components/calculation-notification/CalculationChangeMessage.tsx b/server/sonar-web/src/main/js/app/components/calculation-notification/CalculationChangeMessage.tsx
index 34e97a11306..14b082b1235 100644
--- a/server/sonar-web/src/main/js/app/components/calculation-notification/CalculationChangeMessage.tsx
+++ b/server/sonar-web/src/main/js/app/components/calculation-notification/CalculationChangeMessage.tsx
@@ -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;
}
diff --git a/server/sonar-web/src/main/js/app/components/metrics/RatingComponent.tsx b/server/sonar-web/src/main/js/app/components/metrics/RatingComponent.tsx
index f63301ef1f3..50714c4d1a1 100644
--- a/server/sonar-web/src/main/js/app/components/metrics/RatingComponent.tsx
+++ b/server/sonar-web/src/main/js/app/components/metrics/RatingComponent.tsx
@@ -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),
},
);
diff --git a/server/sonar-web/src/main/js/apps/code/components/CodeAppRenderer.tsx b/server/sonar-web/src/main/js/apps/code/components/CodeAppRenderer.tsx
index c180e6fe1a7..03c701c5cb5 100644
--- a/server/sonar-web/src/main/js/apps/code/components/CodeAppRenderer.tsx
+++ b/server/sonar-web/src/main/js/apps/code/components/CodeAppRenderer.tsx
@@ -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}
diff --git a/server/sonar-web/src/main/js/apps/code/components/ComponentMeasure.tsx b/server/sonar-web/src/main/js/apps/code/components/ComponentMeasure.tsx
index 7f77c3dda31..30d46001e75 100644
--- a/server/sonar-web/src/main/js/apps/code/components/ComponentMeasure.tsx
+++ b/server/sonar-web/src/main/js/apps/code/components/ComponentMeasure.tsx
@@ -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;
diff --git a/server/sonar-web/src/main/js/apps/code/components/ComponentsHeader.tsx b/server/sonar-web/src/main/js/apps/code/components/ComponentsHeader.tsx
index b1ee5f40500..4ee73fd725e 100644
--- a/server/sonar-web/src/main/js/apps/code/components/ComponentsHeader.tsx
+++ b/server/sonar-web/src/main/js/apps/code/components/ComponentsHeader.tsx
@@ -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',
diff --git a/server/sonar-web/src/main/js/apps/coding-rules/components/FacetsList.tsx b/server/sonar-web/src/main/js/apps/coding-rules/components/FacetsList.tsx
index e29d4e44913..ec284499b1d 100644
--- a/server/sonar-web/src/main/js/apps/coding-rules/components/FacetsList.tsx
+++ b/server/sonar-web/src/main/js/apps/coding-rules/components/FacetsList.tsx
@@ -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" />
diff --git a/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsHeaderSide.tsx b/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsHeaderSide.tsx
index 8731166166f..25b8bc60b9b 100644
--- a/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsHeaderSide.tsx
+++ b/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsHeaderSide.tsx
@@ -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>
);
}
diff --git a/server/sonar-web/src/main/js/apps/coding-rules/components/RuleListItem.tsx b/server/sonar-web/src/main/js/apps/coding-rules/components/RuleListItem.tsx
index 8d26d829b47..607c206990d 100644
--- a/server/sonar-web/src/main/js/apps/coding-rules/components/RuleListItem.tsx
+++ b/server/sonar-web/src/main/js/apps/coding-rules/components/RuleListItem.tsx
@@ -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"
diff --git a/server/sonar-web/src/main/js/apps/component-measures/hooks.ts b/server/sonar-web/src/main/js/apps/component-measures/hooks.ts
index d0fa433ba1f..984ad1ab377 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/hooks.ts
+++ b/server/sonar-web/src/main/js/apps/component-measures/hooks.ts
@@ -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;
}
diff --git a/server/sonar-web/src/main/js/apps/component-measures/sidebar/DomainSubnavigation.tsx b/server/sonar-web/src/main/js/apps/component-measures/sidebar/DomainSubnavigation.tsx
index 1271c05af55..ef1702f1db3 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/sidebar/DomainSubnavigation.tsx
+++ b/server/sonar-web/src/main/js/apps/component-measures/sidebar/DomainSubnavigation.tsx
@@ -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}
/>
diff --git a/server/sonar-web/src/main/js/apps/component-measures/sidebar/Sidebar.tsx b/server/sonar-web/src/main/js/apps/component-measures/sidebar/Sidebar.tsx
index ea39cb9d6d4..618c42a30d3 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/sidebar/Sidebar.tsx
+++ b/server/sonar-web/src/main/js/apps/component-measures/sidebar/Sidebar.tsx
@@ -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) => {
diff --git a/server/sonar-web/src/main/js/apps/component-measures/utils.ts b/server/sonar-web/src/main/js/apps/component-measures/utils.ts
index 8a70d05b716..f277a75fd35 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/utils.ts
+++ b/server/sonar-web/src/main/js/apps/component-measures/utils.ts
@@ -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');
}
diff --git a/server/sonar-web/src/main/js/apps/issues/components/IssueHeaderSide.tsx b/server/sonar-web/src/main/js/apps/issues/components/IssueHeaderSide.tsx
index b30eb641b1f..81a093dabee 100644
--- a/server/sonar-web/src/main/js/apps/issues/components/IssueHeaderSide.tsx
+++ b/server/sonar-web/src/main/js/apps/issues/components/IssueHeaderSide.tsx
@@ -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}
diff --git a/server/sonar-web/src/main/js/apps/issues/sidebar/Sidebar.tsx b/server/sonar-web/src/main/js/apps/issues/sidebar/Sidebar.tsx
index a41e9a851ee..f8930f85993 100644
--- a/server/sonar-web/src/main/js/apps/issues/sidebar/Sidebar.tsx
+++ b/server/sonar-web/src/main/js/apps/issues/sidebar/Sidebar.tsx
@@ -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}
diff --git a/server/sonar-web/src/main/js/apps/overview/branches/ActivityPanel.tsx b/server/sonar-web/src/main/js/apps/overview/branches/ActivityPanel.tsx
index 92c9bd59815..6bbf5eaf39a 100644
--- a/server/sonar-web/src/main/js/apps/overview/branches/ActivityPanel.tsx
+++ b/server/sonar-web/src/main/js/apps/overview/branches/ActivityPanel.tsx
@@ -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;
diff --git a/server/sonar-web/src/main/js/apps/overview/branches/BranchOverview.tsx b/server/sonar-web/src/main/js/apps/overview/branches/BranchOverview.tsx
index 3a159842e5f..ddf4d2ec60b 100644
--- a/server/sonar-web/src/main/js/apps/overview/branches/BranchOverview.tsx
+++ b/server/sonar-web/src/main/js/apps/overview/branches/BranchOverview.tsx
@@ -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({
diff --git a/server/sonar-web/src/main/js/apps/overview/branches/SoftwareImpactMeasureCard.tsx b/server/sonar-web/src/main/js/apps/overview/branches/SoftwareImpactMeasureCard.tsx
index 3d381c9a414..3f3cb6f1dc1 100644
--- a/server/sonar-web/src/main/js/apps/overview/branches/SoftwareImpactMeasureCard.tsx
+++ b/server/sonar-web/src/main/js/apps/overview/branches/SoftwareImpactMeasureCard.tsx
@@ -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(
diff --git a/server/sonar-web/src/main/js/apps/overview/branches/SoftwareImpactMeasureRating.tsx b/server/sonar-web/src/main/js/apps/overview/branches/SoftwareImpactMeasureRating.tsx
index c58ff188d11..c990b5f26ac 100644
--- a/server/sonar-web/src/main/js/apps/overview/branches/SoftwareImpactMeasureRating.tsx
+++ b/server/sonar-web/src/main/js/apps/overview/branches/SoftwareImpactMeasureRating.tsx
@@ -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} />;
}
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityApp.tsx b/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityApp.tsx
index 21cc693dd84..b51a8650651 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityApp.tsx
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityApp.tsx
@@ -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)
}
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityAppRenderer.tsx b/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityAppRenderer.tsx
index f52fbbd5b72..de667ada90b 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityAppRenderer.tsx
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityAppRenderer.tsx
@@ -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}
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityGraphs.tsx b/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityGraphs.tsx
index f059e203627..fa05b8f0303 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityGraphs.tsx
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityGraphs.tsx
@@ -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">
diff --git a/server/sonar-web/src/main/js/apps/projects/__tests__/utils-test.ts b/server/sonar-web/src/main/js/apps/projects/__tests__/utils-test.ts
index f245ee977fe..ce5aedb63bd 100644
--- a/server/sonar-web/src/main/js/apps/projects/__tests__/utils-test.ts
+++ b/server/sonar-web/src/main/js/apps/projects/__tests__/utils-test.ts
@@ -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 },
diff --git a/server/sonar-web/src/main/js/apps/projects/components/AllProjects.tsx b/server/sonar-web/src/main/js/apps/projects/components/AllProjects.tsx
index 3d9eeead93c..d08bc398621 100644
--- a/server/sonar-web/src/main/js/apps/projects/components/AllProjects.tsx
+++ b/server/sonar-web/src/main/js/apps/projects/components/AllProjects.tsx
@@ -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>
);
}
diff --git a/server/sonar-web/src/main/js/apps/projects/components/project-card/ProjectCardMeasures.tsx b/server/sonar-web/src/main/js/apps/projects/components/project-card/ProjectCardMeasures.tsx
index 19dfe38e4dc..179b9b1bb6f 100644
--- a/server/sonar-web/src/main/js/apps/projects/components/project-card/ProjectCardMeasures.tsx
+++ b/server/sonar-web/src/main/js/apps/projects/components/project-card/ProjectCardMeasures.tsx
@@ -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);
diff --git a/server/sonar-web/src/main/js/apps/projects/filters/RatingFacet.tsx b/server/sonar-web/src/main/js/apps/projects/filters/RatingFacet.tsx
index 5a0b704345b..a756bb4e0c3 100644
--- a/server/sonar-web/src/main/js/apps/projects/filters/RatingFacet.tsx
+++ b/server/sonar-web/src/main/js/apps/projects/filters/RatingFacet.tsx
@@ -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>
diff --git a/server/sonar-web/src/main/js/apps/projects/query.ts b/server/sonar-web/src/main/js/apps/projects/query.ts
index 0a6edbb1563..cef18e8f55b 100644
--- a/server/sonar-web/src/main/js/apps/projects/query.ts
+++ b/server/sonar-web/src/main/js/apps/projects/query.ts
@@ -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]));
}
diff --git a/server/sonar-web/src/main/js/apps/projects/utils.ts b/server/sonar-web/src/main/js/apps/projects/utils.ts
index 709e2626f52..b32e4ca015d 100644
--- a/server/sonar-web/src/main/js/apps/projects/utils.ts
+++ b/server/sonar-web/src/main/js/apps/projects/utils.ts
@@ -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;
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonResults.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonResults.tsx
index 5ace834dc30..9af91ac5e32 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonResults.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonResults.tsx
@@ -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>
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRules.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRules.tsx
index eebcabef175..039fc4a7afe 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRules.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRules.tsx
@@ -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"
diff --git a/server/sonar-web/src/main/js/apps/settings/components/authentication/GitHubAuthenticationTab.tsx b/server/sonar-web/src/main/js/apps/settings/components/authentication/GitHubAuthenticationTab.tsx
index 057bebd138b..456d1c3f7e6 100644
--- a/server/sonar-web/src/main/js/apps/settings/components/authentication/GitHubAuthenticationTab.tsx
+++ b/server/sonar-web/src/main/js/apps/settings/components/authentication/GitHubAuthenticationTab.tsx
@@ -372,7 +372,7 @@ export default function GitHubAuthenticationTab() {
{isFormOpen && (
<GitHubConfigurationForm
gitHubConfiguration={gitHubConfiguration}
- isLegacyConfiguration={hasLegacyConfiguration}
+ isStandardModeConfiguration={hasLegacyConfiguration}
onClose={() => {
setIsFormOpen(false);
}}
diff --git a/server/sonar-web/src/main/js/apps/settings/components/authentication/GitHubConfigurationForm.tsx b/server/sonar-web/src/main/js/apps/settings/components/authentication/GitHubConfigurationForm.tsx
index 693953ba25f..e4b71b2ea81 100644
--- a/server/sonar-web/src/main/js/apps/settings/components/authentication/GitHubConfigurationForm.tsx
+++ b/server/sonar-web/src/main/js/apps/settings/components/authentication/GitHubConfigurationForm.tsx
@@ -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>
diff --git a/server/sonar-web/src/main/js/components/SourceViewer/SourceViewerHeader.tsx b/server/sonar-web/src/main/js/components/SourceViewer/SourceViewerHeader.tsx
index 2915ce50b29..ac85d31cb62 100644
--- a/server/sonar-web/src/main/js/components/SourceViewer/SourceViewerHeader.tsx
+++ b/server/sonar-web/src/main/js/components/SourceViewer/SourceViewerHeader.tsx
@@ -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 (
diff --git a/server/sonar-web/src/main/js/components/SourceViewer/components/LineIssuesIndicator.tsx b/server/sonar-web/src/main/js/components/SourceViewer/components/LineIssuesIndicator.tsx
index a7d77852d73..17561817e60 100644
--- a/server/sonar-web/src/main/js/components/SourceViewer/components/LineIssuesIndicator.tsx
+++ b/server/sonar-web/src/main/js/components/SourceViewer/components/LineIssuesIndicator.tsx
@@ -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,
diff --git a/server/sonar-web/src/main/js/components/activity-graph/utils.ts b/server/sonar-web/src/main/js/components/activity-graph/utils.ts
index b1768446382..ebcc1aa3550 100644
--- a/server/sonar-web/src/main/js/components/activity-graph/utils.ts
+++ b/server/sonar-web/src/main/js/components/activity-graph/utils.ts
@@ -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[]) {
diff --git a/server/sonar-web/src/main/js/components/icon-mappers/SoftwareImpactSeverityIcon.tsx b/server/sonar-web/src/main/js/components/icon-mappers/SoftwareImpactSeverityIcon.tsx
index 0d42c729b26..9f3ce0ca77b 100644
--- a/server/sonar-web/src/main/js/components/icon-mappers/SoftwareImpactSeverityIcon.tsx
+++ b/server/sonar-web/src/main/js/components/icon-mappers/SoftwareImpactSeverityIcon.tsx
@@ -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)}
/>
);
}
diff --git a/server/sonar-web/src/main/js/components/issue/components/IssueTitleBar.tsx b/server/sonar-web/src/main/js/components/issue/components/IssueTitleBar.tsx
index 73f51cee95e..46215799b4e 100644
--- a/server/sonar-web/src/main/js/components/issue/components/IssueTitleBar.tsx
+++ b/server/sonar-web/src/main/js/components/issue/components/IssueTitleBar.tsx
@@ -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>
diff --git a/server/sonar-web/src/main/js/components/shared/AnalysisMissingInfoMessage.tsx b/server/sonar-web/src/main/js/components/shared/AnalysisMissingInfoMessage.tsx
index b0bb17d6cbf..c9dd40bf03a 100644
--- a/server/sonar-web/src/main/js/components/shared/AnalysisMissingInfoMessage.tsx
+++ b/server/sonar-web/src/main/js/components/shared/AnalysisMissingInfoMessage.tsx
@@ -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;
}
diff --git a/server/sonar-web/src/main/js/components/shared/SoftwareImpactPillList.tsx b/server/sonar-web/src/main/js/components/shared/SoftwareImpactPillList.tsx
index 5fb953f5a66..0275abea56c 100644
--- a/server/sonar-web/src/main/js/components/shared/SoftwareImpactPillList.tsx
+++ b/server/sonar-web/src/main/js/components/shared/SoftwareImpactPillList.tsx
@@ -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>
diff --git a/server/sonar-web/src/main/js/helpers/activity-graph.ts b/server/sonar-web/src/main/js/helpers/activity-graph.ts
index 62c3e9d46c4..d2273460103 100644
--- a/server/sonar-web/src/main/js/helpers/activity-graph.ts
+++ b/server/sonar-web/src/main/js/helpers/activity-graph.ts
@@ -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))
diff --git a/server/sonar-web/src/main/js/queries/rules.ts b/server/sonar-web/src/main/js/queries/rules.ts
index 07f83be487e..2525d85133a 100644
--- a/server/sonar-web/src/main/js/queries/rules.ts
+++ b/server/sonar-web/src/main/js/queries/rules.ts
@@ -17,11 +17,7 @@
* 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';
diff --git a/server/sonar-web/src/main/js/queries/settings.ts b/server/sonar-web/src/main/js/queries/settings.ts
index 83d02cbaf81..e9fb110dd44 100644
--- a/server/sonar-web/src/main/js/queries/settings.ts
+++ b/server/sonar-web/src/main/js/queries/settings.ts
@@ -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' },