Skip to content

Commit f5b1104

Browse files
authored
change query to check all repos, not only the first page.
1 parent 2d5bf7d commit f5b1104

File tree

1 file changed

+22
-10
lines changed

1 file changed

+22
-10
lines changed

static/app/views/settings/organizationIntegrations/integrationCodeMappings.tsx

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,13 @@ import type {
2323
RepositoryProjectPathConfig,
2424
} from 'sentry/types/integrations';
2525
import {trackAnalytics} from 'sentry/utils/analytics';
26+
import {useFetchAllPages} from 'sentry/utils/api/apiFetch';
27+
import {apiOptions} from 'sentry/utils/api/apiOptions';
2628
import {getApiUrl} from 'sentry/utils/api/getApiUrl';
2729
import {getIntegrationIcon} from 'sentry/utils/integrationUtil';
2830
import {
2931
useApiQuery,
32+
useInfiniteQuery,
3033
useMutation,
3134
useQueryClient,
3235
type ApiQueryKey,
@@ -159,19 +162,28 @@ export function IntegrationCodeMappings({integration}: {integration: Integration
159162
{staleTime: 10_000}
160163
);
161164

165+
const repositoriesQuery = useInfiniteQuery({
166+
...apiOptions.asInfinite<Repository[]>()(
167+
'/organizations/$organizationIdOrSlug/repos/',
168+
{
169+
path: {organizationIdOrSlug: organization.slug},
170+
query: {status: 'active', per_page: 100},
171+
staleTime: 10_000,
172+
}
173+
),
174+
select: (data: InfiniteData<ApiResponse<Repository[]>>) =>
175+
data.pages.flatMap((page: ApiResponse<Repository[]>) => page.json),
176+
});
177+
useFetchAllPages({result: repositoriesQuery});
178+
162179
const {
163180
data: fetchedRepos = [],
164-
isPending: isPendingRepos,
181+
isPending: isPendingReposQuery,
165182
isError: isErrorRepos,
166-
} = useApiQuery<Repository[]>(
167-
[
168-
getApiUrl(`/organizations/$organizationIdOrSlug/repos/`, {
169-
path: {organizationIdOrSlug: organization.slug},
170-
}),
171-
{query: {status: 'active'}},
172-
],
173-
{staleTime: 10_000}
174-
);
183+
isFetchingNextPage: isFetchingNextReposPage,
184+
} = repositoriesQuery;
185+
186+
const isPendingRepos = isPendingReposQuery || isFetchingNextReposPage;
175187

176188
const pathConfigs = useMemo(() => {
177189
return sortBy(fetchedPathConfigs, [

0 commit comments

Comments
 (0)