Skip to content

Commit 11b08cd

Browse files
multi: migrate all consumer imports to usePlatform()
Move 35 component and hook files from importing platform-switched hooks directly from barrel files to destructuring them from usePlatform(), preparing for barrel file cleanup.
1 parent 0c50f4c commit 11b08cd

39 files changed

Lines changed: 203 additions & 168 deletions

src/Components/Blueprints/BlueprintDiffModal.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {
1010
ModalVariant,
1111
} from '@patternfly/react-core';
1212

13-
import { useGetBlueprintQuery } from '@/store/api/backend';
13+
import { usePlatform } from '@/context/platform';
1414
import { selectSelectedBlueprintId } from '@/store/slices/blueprint';
1515

1616
import { BuildImagesButton } from './BuildImagesButton';
@@ -31,13 +31,14 @@ const BlueprintDiffModal = ({
3131
isOpen,
3232
onClose,
3333
}: blueprintDiffProps) => {
34+
const { queries } = usePlatform();
3435
const selectedBlueprintId = useAppSelector(selectSelectedBlueprintId);
3536

36-
const { data: baseBlueprint } = useGetBlueprintQuery(
37+
const { data: baseBlueprint } = queries.useGetBlueprintQuery(
3738
{ id: selectedBlueprintId as string, version: baseVersion || -1 },
3839
{ skip: !selectedBlueprintId || !baseVersion },
3940
);
40-
const { data: blueprint } = useGetBlueprintQuery(
41+
const { data: blueprint } = queries.useGetBlueprintQuery(
4142
{ id: selectedBlueprintId as string },
4243
{ skip: !selectedBlueprintId },
4344
);

src/Components/Blueprints/BlueprintsPagination.tsx

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,8 @@ import React from 'react';
33
import { Pagination, PaginationVariant } from '@patternfly/react-core';
44
import { OnSetPage } from '@patternfly/react-core/dist/esm/components/Pagination/Pagination';
55

6-
import {
7-
GetBlueprintsApiArg,
8-
useGetBlueprintsQuery,
9-
} from '@/store/api/backend';
6+
import { usePlatform } from '@/context/platform';
7+
import { GetBlueprintsApiArg } from '@/store/api/backend';
108
import {
119
selectBlueprintSearchInput,
1210
selectLimit,
@@ -18,6 +16,7 @@ import {
1816
import { useAppDispatch, useAppSelector } from '../../store/hooks';
1917

2018
const BlueprintsPagination = () => {
19+
const { queries } = usePlatform();
2120
const blueprintSearchInput = useAppSelector(selectBlueprintSearchInput);
2221
const blueprintsOffset = useAppSelector(selectOffset) || 0;
2322
const blueprintsLimit = useAppSelector(selectLimit) || 10;
@@ -32,7 +31,7 @@ const BlueprintsPagination = () => {
3231
searchParams.search = blueprintSearchInput;
3332
}
3433

35-
const { data: blueprintsData } = useGetBlueprintsQuery(searchParams);
34+
const { data: blueprintsData } = queries.useGetBlueprintsQuery(searchParams);
3635
const dispatch = useAppDispatch();
3736

3837
const blueprintsTotal = blueprintsData?.meta.count || 0;

src/Components/Blueprints/BlueprintsSideBar.tsx

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,8 @@ import { PlusCircleIcon, SearchIcon } from '@patternfly/react-icons';
1818
import { SVGIconProps } from '@patternfly/react-icons/dist/esm/createIcon';
1919
import useChrome from '@redhat-cloud-services/frontend-components/useChrome';
2020

21-
import {
22-
BlueprintItem,
23-
GetBlueprintsApiArg,
24-
imageBuilderApi,
25-
useGetBlueprintsQuery,
26-
} from '@/store/api/backend';
21+
import { usePlatform } from '@/context/platform';
22+
import { BlueprintItem, GetBlueprintsApiArg } from '@/store/api/backend';
2723
import {
2824
selectBlueprintSearchInput,
2925
selectLimit,
@@ -57,6 +53,7 @@ type emptyBlueprintStateProps = {
5753
};
5854

5955
const BlueprintsSidebar = () => {
56+
const { queries } = usePlatform();
6057
const { analytics, auth } = useChrome();
6158
const { userData } = useGetUser(auth);
6259
const isOnPremise = useAppSelector(selectIsOnPremise);
@@ -79,7 +76,7 @@ const BlueprintsSidebar = () => {
7976
data: blueprintsData,
8077
isLoading,
8178
isFetching,
82-
} = useGetBlueprintsQuery(searchParams);
79+
} = queries.useGetBlueprintsQuery(searchParams);
8380
const dispatch = useAppDispatch();
8481
const blueprints = blueprintsData?.data;
8582

@@ -181,6 +178,7 @@ const BlueprintsSidebar = () => {
181178
};
182179

183180
const BlueprintSearch = ({ blueprintsTotal }: blueprintSearchProps) => {
181+
const { api } = usePlatform();
184182
const blueprintSearchInput = useAppSelector(selectBlueprintSearchInput);
185183
const dispatch = useAppDispatch();
186184
const [localSearchValue, setLocalSearchValue] = useState(
@@ -190,7 +188,7 @@ const BlueprintSearch = ({ blueprintsTotal }: blueprintSearchProps) => {
190188

191189
useEffect(() => {
192190
dispatch(setBlueprintsOffset(0));
193-
dispatch(imageBuilderApi.util.invalidateTags([{ type: 'Blueprints' }]));
191+
dispatch(api.backendApi.util.invalidateTags([{ type: 'Blueprints' }]));
194192
dispatch(
195193
setBlueprintSearchInput(
196194
debouncedSearchValue.length > 0 ? debouncedSearchValue : undefined,

src/Components/Blueprints/BuildImagesButton.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ import { MenuToggleElement } from '@patternfly/react-core/dist/esm/components/Me
1818
import useChrome from '@redhat-cloud-services/frontend-components/useChrome';
1919
import { skipToken } from '@reduxjs/toolkit/query';
2020

21-
import { ImageTypes, useGetBlueprintQuery } from '@/store/api/backend';
21+
import { usePlatform } from '@/context/platform';
22+
import { ImageTypes } from '@/store/api/backend';
2223
import { selectSelectedBlueprintId } from '@/store/slices/blueprint';
2324
import { selectIsOnPremise } from '@/store/slices/env';
2425

@@ -35,6 +36,7 @@ type BuildImagesButtonPropTypes = {
3536
};
3637

3738
export const BuildImagesButton = ({ children }: BuildImagesButtonPropTypes) => {
39+
const { queries } = usePlatform();
3840
const selectedBlueprintId = useAppSelector(selectSelectedBlueprintId);
3941
const [deselectedTargets, setDeselectedTargets] = useState<ImageTypes[]>([]);
4042
const { trigger: buildBlueprint, isLoading: imageBuildLoading } =
@@ -66,7 +68,7 @@ export const BuildImagesButton = ({ children }: BuildImagesButtonPropTypes) => {
6668
const onToggleClick = () => {
6769
setIsOpen(!isOpen);
6870
};
69-
const { data: blueprintDetails } = useGetBlueprintQuery(
71+
const { data: blueprintDetails } = queries.useGetBlueprintQuery(
7072
selectedBlueprintId ? { id: selectedBlueprintId } : skipToken,
7173
);
7274
const blueprintImageType = blueprintDetails?.image_requests.map(

src/Components/Blueprints/DeleteBlueprintModal.tsx

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,8 @@ import {
1010
} from '@patternfly/react-core';
1111
import useChrome from '@redhat-cloud-services/frontend-components/useChrome';
1212

13-
import {
14-
backendApi,
15-
GetBlueprintsApiArg,
16-
useGetBlueprintsQuery,
17-
} from '@/store/api/backend';
13+
import { usePlatform } from '@/context/platform';
14+
import { GetBlueprintsApiArg } from '@/store/api/backend';
1815
import {
1916
selectBlueprintSearchInput,
2017
selectLimit,
@@ -43,6 +40,7 @@ interface DeleteBlueprintModalProps {
4340
export const DeleteBlueprintModal: React.FunctionComponent<
4441
DeleteBlueprintModalProps
4542
> = ({ setShowDeleteModal, isOpen }: DeleteBlueprintModalProps) => {
43+
const { queries, api } = usePlatform();
4644
const selectedBlueprintId = useAppSelector(selectSelectedBlueprintId);
4745
const blueprintSearchInput = useAppSelector(selectBlueprintSearchInput);
4846
const blueprintsOffset = useAppSelector(selectOffset) || PAGINATION_OFFSET;
@@ -61,7 +59,7 @@ export const DeleteBlueprintModal: React.FunctionComponent<
6159
searchParams.search = blueprintSearchInput;
6260
}
6361

64-
const { blueprintName } = useGetBlueprintsQuery(searchParams, {
62+
const { blueprintName } = queries.useGetBlueprintsQuery(searchParams, {
6563
selectFromResult: ({ data }) => ({
6664
blueprintName: data?.data.find(
6765
(blueprint: { id: string | undefined }) =>
@@ -83,7 +81,7 @@ export const DeleteBlueprintModal: React.FunctionComponent<
8381
setShowDeleteModal(false);
8482
await deleteBlueprint({ id: selectedBlueprintId });
8583
dispatch(setBlueprintId(undefined));
86-
dispatch(backendApi.util.invalidateTags([{ type: 'Blueprints' }]));
84+
dispatch(api.backendApi.util.invalidateTags([{ type: 'Blueprints' }]));
8785
}
8886
};
8987
const onDeleteClose = () => {

src/Components/CreateImageWizard/steps/ImageOutput/components/ImageSourceSelect.tsx

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,8 @@ import {
1919
import { SyncAltIcon } from '@patternfly/react-icons';
2020

2121
import { RHEL_10_IMAGE_MODE_IMAGE } from '@/constants';
22-
import {
23-
BootcDistributionItem,
24-
useGetDistributionsQuery,
25-
} from '@/store/api/backend';
22+
import { usePlatform } from '@/context/platform';
23+
import { BootcDistributionItem } from '@/store/api/backend';
2624
import { Distributions } from '@/store/api/backend/hosted';
2725
import { useAppDispatch, useAppSelector } from '@/store/hooks';
2826
import { selectIsOnPremise } from '@/store/slices/env';
@@ -63,6 +61,7 @@ const InfoMessageContent = ({ source }: { source: string }) => {
6361
};
6462

6563
const ImageSourceSelect = () => {
64+
const { queries } = usePlatform();
6665
const dispatch = useAppDispatch();
6766
const isOnPremise = useAppSelector(selectIsOnPremise);
6867
const arch = useAppSelector(selectArchitecture);
@@ -77,7 +76,7 @@ const ImageSourceSelect = () => {
7776
isLoading,
7877
isError,
7978
refetch,
80-
} = useGetDistributionsQuery({ kind: 'bootc', arch });
79+
} = queries.useGetDistributionsQuery({ kind: 'bootc', arch });
8180

8281
const bootcDistributions = distributions as
8382
| BootcDistributionItem[]

src/Components/CreateImageWizard/steps/ImageOutput/components/TargetEnvironment.tsx

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,10 @@ import {
1111
Tooltip,
1212
} from '@patternfly/react-core';
1313

14+
import { usePlatform } from '@/context/platform';
1415
import { useTargetEnvironmentCategories } from '@/Hooks';
1516
import { rhsmApi } from '@/store/api';
16-
import {
17-
BootcDistributionItem,
18-
ImageTypes,
19-
useGetArchitecturesQuery,
20-
useGetDistributionsQuery,
21-
} from '@/store/api/backend';
17+
import { BootcDistributionItem, ImageTypes } from '@/store/api/backend';
2218
import { useCustomizationRestrictions } from '@/store/api/distributions';
2319
import { useAppDispatch, useAppSelector } from '@/store/hooks';
2420
import {
@@ -67,6 +63,7 @@ const createLabelWithTooltip = (
6763
};
6864

6965
const TargetEnvironment = () => {
66+
const { queries } = usePlatform();
7067
const arch = useAppSelector(selectArchitecture);
7168
const environments = useAppSelector(selectImageTypes);
7269
const distribution = useAppSelector(selectDistribution);
@@ -80,7 +77,7 @@ const TargetEnvironment = () => {
8077
isError: isArchError,
8178
isFetching: isArchFetching,
8279
environments: archEnvironments,
83-
} = useGetArchitecturesQuery(
80+
} = queries.useGetArchitecturesQuery(
8481
{
8582
distribution,
8683
},
@@ -101,7 +98,7 @@ const TargetEnvironment = () => {
10198
data: bootcDistributionsRaw,
10299
isError: isBootcError,
103100
isFetching: isBootcFetching,
104-
} = useGetDistributionsQuery(
101+
} = queries.useGetDistributionsQuery(
105102
{ kind: 'bootc', arch, distro: distribution },
106103
{ skip: !isImageMode },
107104
);

src/Components/CreateImageWizard/steps/ImageOutput/tests/ImageSourceSelect.test.tsx

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,22 @@ import ImageSourceSelect from '../components/ImageSourceSelect';
2727
const mockRefetch = vi.fn();
2828
const mockUseGetDistributionsQuery = vi.fn();
2929

30-
vi.mock('@/store/api/backend', async (importOriginal) => {
31-
const actual = await importOriginal<typeof import('@/store/api/backend')>();
30+
vi.mock('@/context/platform', async (importOriginal) => {
31+
const actual =
32+
await importOriginal<typeof import('@/context/platform')>();
33+
const { mockPlatform } = await import(
34+
'@/context/platform/tests/mocks'
35+
);
3236
return {
3337
...actual,
34-
useGetDistributionsQuery: (...args: unknown[]) =>
35-
mockUseGetDistributionsQuery(...args),
38+
usePlatform: () => ({
39+
...mockPlatform,
40+
queries: {
41+
...mockPlatform.queries,
42+
useGetDistributionsQuery: (...args: unknown[]) =>
43+
mockUseGetDistributionsQuery(...args),
44+
},
45+
}),
3646
};
3747
});
3848

src/Components/CreateImageWizard/steps/Kernel/components/KernelArguments.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { FormGroup, HelperText, HelperTextItem } from '@patternfly/react-core';
55
import LabelInput from '@/Components/CreateImageWizard/LabelInput';
66
import { useKernelValidation } from '@/Components/CreateImageWizard/utilities/useValidation';
77
import { isKernelArgumentValid } from '@/Components/CreateImageWizard/validators';
8-
import { useGetOscapCustomizationsQuery } from '@/store/api/backend';
8+
import { usePlatform } from '@/context/platform';
99
import { useAppSelector } from '@/store/hooks';
1010
import {
1111
addKernelArg,
@@ -16,14 +16,15 @@ import {
1616
} from '@/store/slices/wizard';
1717

1818
const KernelArguments = () => {
19+
const { queries } = usePlatform();
1920
const kernelAppend = useAppSelector(selectKernel).append;
2021

2122
const stepValidation = useKernelValidation();
2223

2324
const release = useAppSelector(selectDistribution);
2425
const complianceProfileID = useAppSelector(selectComplianceProfileID);
2526

26-
const { data: oscapProfileInfo } = useGetOscapCustomizationsQuery(
27+
const { data: oscapProfileInfo } = queries.useGetOscapCustomizationsQuery(
2728
{
2829
distribution: release,
2930
// @ts-ignore if complianceProfileID is undefined the query is going to get skipped, so it's safe here to ignore the linter here

src/Components/CreateImageWizard/steps/Locale/index.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import React, { useMemo } from 'react';
33
import { Content, Spinner, Title } from '@patternfly/react-core';
44

55
import { CustomizationLabels } from '@/Components/sharedComponents/CustomizationLabels';
6-
import { useGetArchitecturesQuery } from '@/store/api/backend';
6+
import { usePlatform } from '@/context/platform';
77
import { useSearchLanguagePacks } from '@/store/api/contentSources';
88
import { useAppSelector } from '@/store/hooks';
99
import {
@@ -17,11 +17,12 @@ import KeyboardDropDown from './components/KeyboardDropDown';
1717
import LanguagesDropDown from './components/LanguagesDropDown';
1818

1919
const LocaleStep = () => {
20+
const { queries } = usePlatform();
2021
const distribution = useAppSelector(selectDistribution);
2122
const arch = useAppSelector(selectArchitecture);
2223
const candidateLangpacks = useAppSelector(selectLocaleLangpackCandidates);
2324
const { data: distroRepositories, isLoading: isArchitecturesLoading } =
24-
useGetArchitecturesQuery({
25+
queries.useGetArchitecturesQuery({
2526
distribution: distribution,
2627
});
2728

0 commit comments

Comments
 (0)