Skip to content

Commit 7bf9ed9

Browse files
fix: [DPS-41226][CMJPOC-7] - Errors while searching for services in cloud manager (#13459)
1 parent d64ca6f commit 7bf9ed9

4 files changed

Lines changed: 21 additions & 5 deletions

File tree

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@linode/manager": Fixed
3+
---
4+
5+
Unnecessary API requests for Delivery services while searching when feature access is not present ([#13459](https://github.com/linode/manager/pull/13459))

packages/manager/src/features/Search/useAPISearch.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import {
1313
import { getAPIFilterFromQuery } from '@linode/search';
1414
import { useDebouncedValue } from '@linode/utilities';
1515

16+
import { useIsACLPLogsEnabled } from 'src/features/Delivery/deliveryUtils';
1617
import { useKubernetesClustersInfiniteQuery } from 'src/queries/kubernetes';
1718
import {
1819
databaseToSearchableItem,
@@ -119,6 +120,7 @@ const entities = [
119120
searchOptions: {
120121
searchableFieldsWithoutOperator: ['label'],
121122
},
123+
requireACLPLogsEnabled: true,
122124
},
123125
{
124126
getSearchableItem: destinationToSearchableItem,
@@ -127,6 +129,7 @@ const entities = [
127129
searchOptions: {
128130
searchableFieldsWithoutOperator: ['label'],
129131
},
132+
requireACLPLogsEnabled: true,
130133
},
131134
];
132135

@@ -142,11 +145,12 @@ const entities = [
142145
* and do the filtering client-side.
143146
*/
144147
export const useAPISearch = ({ enabled, query }: Props) => {
145-
const deboundedQuery = useDebouncedValue(query);
148+
const debouncedQuery = useDebouncedValue(query);
149+
const { isACLPLogsEnabled } = useIsACLPLogsEnabled();
146150

147151
const result = entities.map((entity) => {
148152
const { error, filter } = getAPIFilterFromQuery(
149-
deboundedQuery,
153+
debouncedQuery,
150154
entity.searchOptions
151155
);
152156

@@ -155,7 +159,10 @@ export const useAPISearch = ({ enabled, query }: Props) => {
155159
parseError: error,
156160
...entity.query(
157161
entity.baseFilter ? { ...entity.baseFilter, ...filter } : filter,
158-
enabled && error === null && Boolean(deboundedQuery)
162+
enabled &&
163+
error === null &&
164+
Boolean(debouncedQuery) &&
165+
(!entity.requireACLPLogsEnabled || isACLPLogsEnabled)
159166
),
160167
};
161168
});

packages/manager/src/features/Search/useClientSideSearch.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import {
1111
useAllVolumesQuery,
1212
} from '@linode/queries';
1313

14+
import { useIsACLPLogsEnabled } from 'src/features/Delivery/deliveryUtils';
1415
import { useAllKubernetesClustersQuery } from 'src/queries/kubernetes';
1516
import { useObjectStorageBuckets } from 'src/queries/object-storage/queries';
1617
import {
@@ -44,6 +45,7 @@ interface Props {
4445
*/
4546
export const useClientSideSearch = ({ enabled, query }: Props) => {
4647
const { isPrivateImageSharingEnabled } = useIsPrivateImageSharingEnabled();
48+
const { isACLPLogsEnabled } = useIsACLPLogsEnabled();
4749

4850
const {
4951
data: domains,
@@ -96,12 +98,12 @@ export const useClientSideSearch = ({ enabled, query }: Props) => {
9698
data: streams,
9799
error: streamsError,
98100
isLoading: streamsLoading,
99-
} = useAllStreamsQuery({}, {}, enabled);
101+
} = useAllStreamsQuery({}, {}, enabled && isACLPLogsEnabled);
100102
const {
101103
data: destinations,
102104
error: destinationsError,
103105
isLoading: destinationsLoading,
104-
} = useAllDestinationsQuery({}, {}, enabled);
106+
} = useAllDestinationsQuery({}, {}, enabled && isACLPLogsEnabled);
105107

106108
const searchableDomains = domains?.map(domainToSearchableItem) ?? [];
107109
const searchableVolumes = volumes?.map(volumeToSearchableItem) ?? [];

packages/manager/src/store/selectors/getSearchEntities.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,7 @@ export const streamToSearchableItem = (stream: Stream): SearchableItem => ({
215215
description: getStreamDescription(stream),
216216
path: `/logs/delivery/streams/${stream.id}/edit`,
217217
status: stream.status,
218+
created: stream.created,
218219
},
219220
entityType: 'stream',
220221
label: stream.label,
@@ -227,6 +228,7 @@ export const destinationToSearchableItem = (
227228
data: {
228229
description: getDestinationDescription(destination),
229230
path: `/logs/delivery/destinations/${destination.id}/edit`,
231+
created: destination.created,
230232
},
231233
entityType: 'destination',
232234
label: destination.label,

0 commit comments

Comments
 (0)