From 005f050a81c5899956545361ae60bb025e3ef65d Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Wed, 1 Jul 2026 21:36:23 -0400 Subject: [PATCH] improve pagination --- src/app/[orgId]/page.tsx | 1 - .../resource-launcher/LauncherGroupList.tsx | 29 ++++------- .../resource-launcher/ResourceLauncher.tsx | 6 +-- src/lib/launcherServerData.ts | 48 +------------------ 4 files changed, 12 insertions(+), 72 deletions(-) diff --git a/src/app/[orgId]/page.tsx b/src/app/[orgId]/page.tsx index b76b77b7b..7abb1b317 100644 --- a/src/app/[orgId]/page.tsx +++ b/src/app/[orgId]/page.tsx @@ -87,7 +87,6 @@ export default async function OrgPage(props: OrgPageProps) { savedConfig={launcherData.savedConfig} groups={launcherData.groups} groupsPagination={launcherData.groupsPagination} - resourcesByGroupKey={launcherData.resourcesByGroupKey} /> ) : null} diff --git a/src/components/resource-launcher/LauncherGroupList.tsx b/src/components/resource-launcher/LauncherGroupList.tsx index bb3418f8d..c7fe6b905 100644 --- a/src/components/resource-launcher/LauncherGroupList.tsx +++ b/src/components/resource-launcher/LauncherGroupList.tsx @@ -1,7 +1,6 @@ "use client"; import type { LauncherActiveViewId } from "@app/lib/launcherLocalStorage"; -import type { LauncherGroupResources } from "@app/lib/launcherServerData"; import { launcherQueries } from "@app/lib/queries"; import type { LauncherGroup, @@ -24,7 +23,6 @@ type LauncherGroupListProps = { page: number; pageSize: number; }; - resourcesByGroupKey: Record; onClearFilters?: () => void; onResourceSelect?: (resource: LauncherResource) => void; }; @@ -43,7 +41,6 @@ export function LauncherGroupList({ config, initialGroups, groupsPagination, - resourcesByGroupKey, onClearFilters, onResourceSelect }: LauncherGroupListProps) { @@ -128,22 +125,16 @@ export function LauncherGroupList({ return (
- {groups.map((group) => { - const groupResources = resourcesByGroupKey[group.groupKey]; - - return ( - - ); - })} + {groups.map((group) => ( + + ))}
{isFetchingNextPage ? (
diff --git a/src/components/resource-launcher/ResourceLauncher.tsx b/src/components/resource-launcher/ResourceLauncher.tsx index 6503de169..be5620d25 100644 --- a/src/components/resource-launcher/ResourceLauncher.tsx +++ b/src/components/resource-launcher/ResourceLauncher.tsx @@ -20,7 +20,6 @@ import { writeLauncherLastView, type LauncherActiveViewId } from "@app/lib/launcherLocalStorage"; -import type { LauncherGroupResources } from "@app/lib/launcherServerData"; import { buildLauncherPath, getLauncherUrlBaseConfig, @@ -73,7 +72,6 @@ type ResourceLauncherProps = { page: number; pageSize: number; }; - resourcesByGroupKey: Record; }; export default function ResourceLauncher({ @@ -84,8 +82,7 @@ export default function ResourceLauncher({ config, savedConfig, groups, - groupsPagination, - resourcesByGroupKey + groupsPagination }: ResourceLauncherProps) { const t = useTranslations(); const { toast } = useToast(); @@ -511,7 +508,6 @@ export default function ResourceLauncher({ config={config} initialGroups={groups} groupsPagination={groupsPagination} - resourcesByGroupKey={resourcesByGroupKey} onClearFilters={handleClearFilters} /> diff --git a/src/lib/launcherServerData.ts b/src/lib/launcherServerData.ts index da8fb1846..2c542c5fc 100644 --- a/src/lib/launcherServerData.ts +++ b/src/lib/launcherServerData.ts @@ -4,24 +4,13 @@ import { resolveLauncherStateFromUrl } from "@app/lib/launcherUrlState"; import { buildLauncherSearchParams } from "@app/lib/launcherSearchParams"; import type { LauncherGroup, - LauncherResource, LauncherViewConfig, LauncherViewRecord, ListLauncherGroupsResponse, - ListLauncherResourcesResponse, ListLauncherViewsResponse } from "@server/routers/launcher/types"; import { AxiosResponse } from "axios"; -export type LauncherGroupResources = { - resources: LauncherResource[]; - pagination: { - total: number; - page: number; - pageSize: number; - }; -}; - export type LauncherPageData = { views: LauncherViewRecord[]; activeViewId: LauncherActiveViewId; @@ -33,12 +22,6 @@ export type LauncherPageData = { page: number; pageSize: number; }; - resourcesByGroupKey: Record; -}; - -const emptyResources: LauncherGroupResources = { - resources: [], - pagination: { total: 0, page: 1, pageSize: 20 } }; export async function fetchLauncherPageData( @@ -88,41 +71,12 @@ export async function fetchLauncherPageData( groupsPagination = groupsRes.data.data.pagination; } catch (e) {} - const resourcesByGroupKey: Record = {}; - - await Promise.all( - groups.map(async (group) => { - try { - const sp = buildLauncherSearchParams( - { - ...groupFilters, - groupKey: group.groupKey - }, - 1 - ); - const res = await internal.get< - AxiosResponse - >( - `/org/${orgId}/launcher/resources?${sp.toString()}`, - cookieHeader - ); - resourcesByGroupKey[group.groupKey] = { - resources: res.data.data.resources, - pagination: res.data.data.pagination - }; - } catch (e) { - resourcesByGroupKey[group.groupKey] = emptyResources; - } - }) - ); - return { views, activeViewId, config, savedConfig, groups, - groupsPagination, - resourcesByGroupKey + groupsPagination }; }