From 2a058be69ee0a86a2867ca5ecf4d6b18345c4241 Mon Sep 17 00:00:00 2001
From: Harsh Mahajan <127186841+HarshMN2345@users.noreply.github.com>
Date: Tue, 2 Sep 2025 19:38:40 +0530
Subject: [PATCH 1/9] fix org projects pagination and add archived pagination
---
src/lib/components/archiveProject.svelte | 20 ++++++++----
.../organization-[organization]/+page.svelte | 13 +++++---
.../organization-[organization]/+page.ts | 31 +++++++++++++++++--
3 files changed, 52 insertions(+), 12 deletions(-)
diff --git a/src/lib/components/archiveProject.svelte b/src/lib/components/archiveProject.svelte
index 3ebb938c10..e2858acbc7 100644
--- a/src/lib/components/archiveProject.svelte
+++ b/src/lib/components/archiveProject.svelte
@@ -1,6 +1,6 @@
@@ -160,8 +160,14 @@
-
- {#each projectsToArchive as project}
+
+ {#snippet children(items)}
+
+ {#each items as project}
{@const platforms = filterPlatforms(
project.platforms.map((platform) => getPlatformInfo(platform.type))
)}
@@ -255,8 +261,10 @@
{/if}
- {/each}
-
+ {/each}
+
+ {/snippet}
+
diff --git a/src/routes/(console)/organization-[organization]/+page.svelte b/src/routes/(console)/organization-[organization]/+page.svelte
index 27af7cbff4..7e958cc697 100644
--- a/src/routes/(console)/organization-[organization]/+page.svelte
+++ b/src/routes/(console)/organization-[organization]/+page.svelte
@@ -104,9 +104,14 @@
return project.status !== 'active';
}
- $: projectsToArchive = data.projects.projects.filter((project) => project.status !== 'active');
+ $: projectsToArchive = (data.archivedProjectsPage ?? data.projects.projects).filter(
+ (project) => project.status !== 'active'
+ );
- $: activeProjects = data.projects.projects.filter((project) => project.status === 'active');
+ $: activeProjects = (data.activeProjectsPage ?? data.projects.projects).filter(
+ (project) => project.status === 'active'
+ );
+ $: activeTotalOverall = data?.activeTotalOverall ?? data?.organization?.projects?.length ?? data?.projects?.total ?? 0;
function clearSearch() {
searchQuery?.clearInput();
}
@@ -157,7 +162,7 @@
{#if activeProjects.length > 0}
{#each activeProjects as project}
@@ -242,7 +247,7 @@
name="Projects"
limit={data.limit}
offset={data.offset}
- total={data.projects.total} />
+ total={activeTotalOverall} />
search: search || undefined
});
+ let allProjects: typeof projects.projects = [];
+ let fetchedCount = 0;
+ const total = projects.total;
+
+ while (fetchedCount < total) {
+ const next = await sdk.forConsole.projects.list({
+ queries: [
+ Query.offset(fetchedCount),
+ Query.equal('teamId', params.organization),
+ Query.limit(limit),
+ Query.orderDesc('')
+ ],
+ search: search || undefined
+ });
+ allProjects = allProjects.concat(next.projects);
+ fetchedCount += next.projects.length;
+ if (next.projects.length === 0) break;
+ }
+
+ const allActiveProjects = allProjects.filter((p) => p.status === 'active');
+ const allArchivedProjects = allProjects.filter((p) => p.status !== 'active');
+
+ const activeProjectsForPage = allActiveProjects.slice(offset, offset + limit);
+
// set `default` if no region!
- for (const project of projects.projects) {
+ for (const project of allProjects) {
project.region ??= 'default';
}
return {
offset,
limit,
- projects,
+ projects: { ...projects, projects: allProjects, total: allActiveProjects.length },
+ activeProjectsPage: activeProjectsForPage,
+ archivedProjectsPage: allArchivedProjects,
+ activeTotalOverall: allActiveProjects.length,
search
};
};
From 82cc38d49cbe84d63dab7f4d3b0de218affa4ec2 Mon Sep 17 00:00:00 2001
From: Harsh Mahajan <127186841+HarshMN2345@users.noreply.github.com>
Date: Tue, 2 Sep 2025 19:43:04 +0530
Subject: [PATCH 2/9] lint issue
---
src/lib/components/archiveProject.svelte | 190 +++++++++---------
.../organization-[organization]/+page.svelte | 6 +-
.../organization-[organization]/+page.ts | 2 +-
3 files changed, 106 insertions(+), 92 deletions(-)
diff --git a/src/lib/components/archiveProject.svelte b/src/lib/components/archiveProject.svelte
index e2858acbc7..0fdd91c339 100644
--- a/src/lib/components/archiveProject.svelte
+++ b/src/lib/components/archiveProject.svelte
@@ -168,99 +168,109 @@
{#snippet children(items)}
{#each items as project}
- {@const platforms = filterPlatforms(
- project.platforms.map((platform) => getPlatformInfo(platform.type))
- )}
- {@const formatted = formatName(project.name)}
-
-
- {project?.platforms?.length ? project?.platforms?.length : 'No'} apps
-
- {formatted}
-
-
-
- {
- e.preventDefault();
- e.stopPropagation();
- readOnlyInfoOpen = {
- ...readOnlyInfoOpen,
- [project.$id]: !readOnlyInfoOpen[project.$id]
- };
- }}>
-
- Read only
-
-
-
-
- Archived projects are read-only. You can view
- and migrate their data, but they no longer
- accept edits or requests.
-
-
-
-
-
-
-
- handleUnarchiveProject(project)}
- >Unarchive project
- handleMigrateProject(project)}
- >Migrate project
-
-
-
-
+ {@const platforms = filterPlatforms(
+ project.platforms.map((platform) =>
+ getPlatformInfo(platform.type)
+ )
+ )}
+ {@const formatted = formatName(project.name)}
+
+
+ {project?.platforms?.length
+ ? project?.platforms?.length
+ : 'No'} apps
+
+ {formatted}
+
+
+
+ {
+ e.preventDefault();
+ e.stopPropagation();
+ readOnlyInfoOpen = {
+ ...readOnlyInfoOpen,
+ [project.$id]:
+ !readOnlyInfoOpen[project.$id]
+ };
+ }}>
+
+ Read only
+
+
+
+
+ Archived projects are read-only. You can
+ view and migrate their data, but they no
+ longer accept edits or requests.
+
+
+
+
+
+
+
+
+ handleUnarchiveProject(project)}
+ >Unarchive project
+
+ handleMigrateProject(project)}
+ >Migrate project
+
+
+
+
- {#each platforms.slice(0, 2) as platform}
- {@const icon = getIconForPlatform(platform.icon)}
-
-
-
- {/each}
+ {#each platforms.slice(0, 2) as platform}
+ {@const icon = getIconForPlatform(platform.icon)}
+
+
+
+ {/each}
- {#if platforms.length > 3}
-
- {/if}
+ {#if platforms.length > 3}
+
+ {/if}
-
- {#if isCloud && $regionsStore?.regions}
- {@const region = findRegion(project)}
- {region?.name}
- {/if}
-
-
+
+ {#if isCloud && $regionsStore?.regions}
+ {@const region = findRegion(project)}
+ {region?.name}
+ {/if}
+
+
{/each}
{/snippet}
diff --git a/src/routes/(console)/organization-[organization]/+page.svelte b/src/routes/(console)/organization-[organization]/+page.svelte
index 7e958cc697..683f0be6a2 100644
--- a/src/routes/(console)/organization-[organization]/+page.svelte
+++ b/src/routes/(console)/organization-[organization]/+page.svelte
@@ -111,7 +111,11 @@
$: activeProjects = (data.activeProjectsPage ?? data.projects.projects).filter(
(project) => project.status === 'active'
);
- $: activeTotalOverall = data?.activeTotalOverall ?? data?.organization?.projects?.length ?? data?.projects?.total ?? 0;
+ $: activeTotalOverall =
+ data?.activeTotalOverall ??
+ data?.organization?.projects?.length ??
+ data?.projects?.total ??
+ 0;
function clearSearch() {
searchQuery?.clearInput();
}
diff --git a/src/routes/(console)/organization-[organization]/+page.ts b/src/routes/(console)/organization-[organization]/+page.ts
index b640aaba4a..e7d97ed24b 100644
--- a/src/routes/(console)/organization-[organization]/+page.ts
+++ b/src/routes/(console)/organization-[organization]/+page.ts
@@ -49,7 +49,7 @@ export const load: PageLoad = async ({ params, url, route, depends, parent }) =>
const allActiveProjects = allProjects.filter((p) => p.status === 'active');
const allArchivedProjects = allProjects.filter((p) => p.status !== 'active');
-
+
const activeProjectsForPage = allActiveProjects.slice(offset, offset + limit);
// set `default` if no region!
From 11e460c89bbb67760e11512d7ee65f830cf83d2b Mon Sep 17 00:00:00 2001
From: Harsh Mahajan <127186841+HarshMN2345@users.noreply.github.com>
Date: Wed, 3 Sep 2025 11:53:54 +0530
Subject: [PATCH 3/9] fix: correct off-by-one error in platform badge
conditional rendering
---
src/lib/components/archiveProject.svelte | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/lib/components/archiveProject.svelte b/src/lib/components/archiveProject.svelte
index 0fdd91c339..c2b514d162 100644
--- a/src/lib/components/archiveProject.svelte
+++ b/src/lib/components/archiveProject.svelte
@@ -257,7 +257,7 @@
{/each}
- {#if platforms.length > 3}
+ {#if platforms.length > 2}
Date: Tue, 9 Sep 2025 12:33:56 +0530
Subject: [PATCH 4/9] feat(org-projects): add separate pagination for archived
projects and optimize queries
---
src/lib/components/archiveProject.svelte | 234 +++++++++---------
src/lib/components/archivedLimit.svelte | 44 ++++
src/lib/components/archivedPagination.svelte | 23 ++
.../archivedPaginationWithLimit.svelte | 31 +++
.../organization-[organization]/+page.svelte | 5 +-
.../organization-[organization]/+page.ts | 71 ++++--
6 files changed, 265 insertions(+), 143 deletions(-)
create mode 100644 src/lib/components/archivedLimit.svelte
create mode 100644 src/lib/components/archivedPagination.svelte
create mode 100644 src/lib/components/archivedPaginationWithLimit.svelte
diff --git a/src/lib/components/archiveProject.svelte b/src/lib/components/archiveProject.svelte
index c2b514d162..a2b0960733 100644
--- a/src/lib/components/archiveProject.svelte
+++ b/src/lib/components/archiveProject.svelte
@@ -1,6 +1,7 @@
+
+
+
+
+ {name} per page. Total: {sum >= 5000 ? `${sum}+` : sum}
+
+
diff --git a/src/lib/components/archivedPagination.svelte b/src/lib/components/archivedPagination.svelte
new file mode 100644
index 0000000000..ae3a714044
--- /dev/null
+++ b/src/lib/components/archivedPagination.svelte
@@ -0,0 +1,23 @@
+
+
+
diff --git a/src/lib/components/archivedPaginationWithLimit.svelte b/src/lib/components/archivedPaginationWithLimit.svelte
new file mode 100644
index 0000000000..7b5d694c02
--- /dev/null
+++ b/src/lib/components/archivedPaginationWithLimit.svelte
@@ -0,0 +1,31 @@
+
+
+
+ {#if showLimit}
+
+ {/if}
+
+
+
diff --git a/src/routes/(console)/organization-[organization]/+page.svelte b/src/routes/(console)/organization-[organization]/+page.svelte
index 683f0be6a2..df5dc380c1 100644
--- a/src/routes/(console)/organization-[organization]/+page.svelte
+++ b/src/routes/(console)/organization-[organization]/+page.svelte
@@ -257,7 +257,10 @@
+ currentPlan={$currentPlan}
+ archivedTotalOverall={data.archivedTotalOverall}
+ archivedOffset={data.archivedOffset}
+ limit={data.limit} />
diff --git a/src/routes/(console)/organization-[organization]/+page.ts b/src/routes/(console)/organization-[organization]/+page.ts
index e7d97ed24b..bf1e20408e 100644
--- a/src/routes/(console)/organization-[organization]/+page.ts
+++ b/src/routes/(console)/organization-[organization]/+page.ts
@@ -18,52 +18,69 @@ export const load: PageLoad = async ({ params, url, route, depends, parent }) =>
const offset = pageToOffset(page, limit);
const search = getSearch(url);
- const projects = await sdk.forConsole.projects.list({
+ const archivedPage = parseInt(url.searchParams.get('archivedPage') || '1');
+ const archivedOffset = pageToOffset(archivedPage, limit);
+
+ // fetch active projects with offset set
+ const activeProjects = await sdk.forConsole.projects.list({
queries: [
Query.offset(offset),
Query.equal('teamId', params.organization),
+ Query.or([Query.equal('status', 'active'), Query.isNull('status')]),
Query.limit(limit),
Query.orderDesc('')
],
search: search || undefined
});
- let allProjects: typeof projects.projects = [];
- let fetchedCount = 0;
- const total = projects.total;
-
- while (fetchedCount < total) {
- const next = await sdk.forConsole.projects.list({
- queries: [
- Query.offset(fetchedCount),
- Query.equal('teamId', params.organization),
- Query.limit(limit),
- Query.orderDesc('')
- ],
- search: search || undefined
- });
- allProjects = allProjects.concat(next.projects);
- fetchedCount += next.projects.length;
- if (next.projects.length === 0) break;
- }
+ // Fetch archived projects with separate pagination
+ const archivedProjects = await sdk.forConsole.projects.list({
+ queries: [
+ Query.offset(archivedOffset),
+ Query.equal('teamId', params.organization),
+ Query.equal('status', 'archived'),
+ Query.limit(limit),
+ Query.orderDesc('')
+ ],
+ search: search || undefined
+ });
- const allActiveProjects = allProjects.filter((p) => p.status === 'active');
- const allArchivedProjects = allProjects.filter((p) => p.status !== 'active');
+ // get total counts
+ const activeTotal = await sdk.forConsole.projects.list({
+ queries: [
+ Query.equal('teamId', params.organization),
+ Query.or([Query.equal('status', 'active'), Query.isNull('status')])
+ ],
+ search: search || undefined
+ });
- const activeProjectsForPage = allActiveProjects.slice(offset, offset + limit);
+ const archivedTotal = await sdk.forConsole.projects.list({
+ queries: [Query.equal('teamId', params.organization), Query.equal('status', 'archived')],
+ search: search || undefined
+ });
// set `default` if no region!
- for (const project of allProjects) {
+ for (const project of activeProjects.projects) {
+ project.region ??= 'default';
+ }
+ for (const project of archivedProjects.projects) {
project.region ??= 'default';
}
return {
offset,
limit,
- projects: { ...projects, projects: allProjects, total: allActiveProjects.length },
- activeProjectsPage: activeProjectsForPage,
- archivedProjectsPage: allArchivedProjects,
- activeTotalOverall: allActiveProjects.length,
+ projects: {
+ ...activeProjects,
+ projects: activeProjects.projects,
+ total: activeTotal.total
+ },
+ activeProjectsPage: activeProjects.projects,
+ archivedProjectsPage: archivedProjects.projects,
+ activeTotalOverall: activeTotal.total,
+ archivedTotalOverall: archivedTotal.total,
+ archivedOffset,
+ archivedPage,
search
};
};
From 655b053c37011afde900e07dc751ea176360157d Mon Sep 17 00:00:00 2001
From: Harsh Mahajan <127186841+HarshMN2345@users.noreply.github.com>
Date: Tue, 9 Sep 2025 12:41:26 +0530
Subject: [PATCH 5/9] fix: lint issues
---
.../organization-[organization]/+page.svelte | 21 +++++++------------
1 file changed, 8 insertions(+), 13 deletions(-)
diff --git a/src/routes/(console)/organization-[organization]/+page.svelte b/src/routes/(console)/organization-[organization]/+page.svelte
index 31c8e492ab..46b8f2769f 100644
--- a/src/routes/(console)/organization-[organization]/+page.svelte
+++ b/src/routes/(console)/organization-[organization]/+page.svelte
@@ -109,24 +109,19 @@
return project.status === 'archived';
}
-$: projectsToArchive =
- (data.archivedProjectsPage ?? data.projects.projects).filter(
- (project) =>
- isCloud
- ? project.status === 'archived'
- : project.status !== 'active' // fallback for non-cloud
+ $: projectsToArchive = (data.archivedProjectsPage ?? data.projects.projects).filter(
+ (project) => (isCloud ? project.status === 'archived' : project.status !== 'active') // fallback for non-cloud
);
-$: activeProjects =
- (data.activeProjectsPage ?? data.projects.projects).filter(
+ $: activeProjects = (data.activeProjectsPage ?? data.projects.projects).filter(
(project) => project.status === 'active'
);
-$: activeTotalOverall =
- data?.activeTotalOverall ??
- data?.organization?.projects?.length ??
- data?.projects?.total ??
- 0;
+ $: activeTotalOverall =
+ data?.activeTotalOverall ??
+ data?.organization?.projects?.length ??
+ data?.projects?.total ??
+ 0;
function clearSearch() {
searchQuery?.clearInput();
}
From 4f4c679e7cef1e750c95ed77e8e095f431b3156f Mon Sep 17 00:00:00 2001
From: Harsh Mahajan <127186841+HarshMN2345@users.noreply.github.com>
Date: Tue, 9 Sep 2025 17:46:31 +0530
Subject: [PATCH 6/9] fixes
---
src/lib/components/archiveProject.svelte | 19 ++---
src/lib/components/archivedLimit.svelte | 44 -----------
src/lib/components/archivedPagination.svelte | 23 ------
.../archivedPaginationWithLimit.svelte | 31 --------
src/lib/components/limit.svelte | 13 +++-
src/lib/components/pagination.svelte | 10 ++-
src/lib/components/paginationWithLimit.svelte | 21 +++++-
src/lib/components/paginator.svelte | 6 +-
.../organization-[organization]/+page.svelte | 2 +-
.../organization-[organization]/+page.ts | 73 +++++++++----------
10 files changed, 86 insertions(+), 156 deletions(-)
delete mode 100644 src/lib/components/archivedLimit.svelte
delete mode 100644 src/lib/components/archivedPagination.svelte
delete mode 100644 src/lib/components/archivedPaginationWithLimit.svelte
diff --git a/src/lib/components/archiveProject.svelte b/src/lib/components/archiveProject.svelte
index 2cfa7c6065..d7c5b6a1b6 100644
--- a/src/lib/components/archiveProject.svelte
+++ b/src/lib/components/archiveProject.svelte
@@ -1,5 +1,5 @@
-
-
-
-
- {name} per page. Total: {sum >= 5000 ? `${sum}+` : sum}
-
-
diff --git a/src/lib/components/archivedPagination.svelte b/src/lib/components/archivedPagination.svelte
deleted file mode 100644
index ae3a714044..0000000000
--- a/src/lib/components/archivedPagination.svelte
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
diff --git a/src/lib/components/archivedPaginationWithLimit.svelte b/src/lib/components/archivedPaginationWithLimit.svelte
deleted file mode 100644
index 7b5d694c02..0000000000
--- a/src/lib/components/archivedPaginationWithLimit.svelte
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
- {#if showLimit}
-
- {/if}
-
-
-
diff --git a/src/lib/components/limit.svelte b/src/lib/components/limit.svelte
index c8e72a4012..8a7c1ef672 100644
--- a/src/lib/components/limit.svelte
+++ b/src/lib/components/limit.svelte
@@ -8,6 +8,8 @@
export let sum: number;
export let limit: number;
export let name: string;
+ export let pageParam: string = 'page';
+ export let removeOnFirstPage: boolean = false;
const options = [
{ label: '6', value: 6 },
@@ -23,10 +25,15 @@
url.searchParams.set('limit', limit.toString());
await preferences.setLimit(limit);
- if (url.searchParams.has('page')) {
- const page = Number(url.searchParams.get('page'));
+ if (url.searchParams.has(pageParam)) {
+ const page = Number(url.searchParams.get(pageParam));
const newPage = Math.floor(((page - 1) * previousLimit) / limit);
- url.searchParams.set('page', newPage.toString());
+ const safePage = Math.max(1, Number.isFinite(newPage) ? newPage : 1);
+ if (removeOnFirstPage && safePage === 1) {
+ url.searchParams.delete(pageParam);
+ } else {
+ url.searchParams.set(pageParam, safePage.toString());
+ }
}
await goto(url.toString());
diff --git a/src/lib/components/pagination.svelte b/src/lib/components/pagination.svelte
index f272f7f66c..975e4cf6e8 100644
--- a/src/lib/components/pagination.svelte
+++ b/src/lib/components/pagination.svelte
@@ -6,15 +6,21 @@
export let limit: number;
export let offset: number;
export let useCreateLink = true;
+ export let pageParam: string = 'page';
+ export let removeOnFirstPage: boolean = false;
$: currentPage = Math.floor(offset / limit + 1);
function getLink(page: number): string {
const url = new URL(pageStore.url);
if (page === 1) {
- url.searchParams.delete('page');
+ if (removeOnFirstPage) {
+ url.searchParams.delete(pageParam);
+ } else {
+ url.searchParams.set(pageParam, '1');
+ }
} else {
- url.searchParams.set('page', page.toString());
+ url.searchParams.set(pageParam, page.toString());
}
return url.toString();
diff --git a/src/lib/components/paginationWithLimit.svelte b/src/lib/components/paginationWithLimit.svelte
index 7cf78f6b56..7522f35213 100644
--- a/src/lib/components/paginationWithLimit.svelte
+++ b/src/lib/components/paginationWithLimit.svelte
@@ -8,13 +8,19 @@
offset,
total,
name,
- useCreateLink = true
+ useCreateLink = true,
+ pageParam = 'page',
+ removeOnFirstPage = false,
+ ...restProps
}: {
limit: number;
offset: number;
total: number;
name: string;
useCreateLink?: boolean;
+ pageParam?: string;
+ removeOnFirstPage?: boolean;
+ [key: string]: any;
} = $props();
const showLimit = $derived(!!useCreateLink);
@@ -22,10 +28,17 @@
const alignItems = $derived(showLimit ? 'center' : 'flex-end');
-
+
{#if showLimit}
-
+
{/if}
-
+
diff --git a/src/lib/components/paginator.svelte b/src/lib/components/paginator.svelte
index ae8aaf9c43..8a1b2b6de7 100644
--- a/src/lib/components/paginator.svelte
+++ b/src/lib/components/paginator.svelte
@@ -13,7 +13,8 @@
name = 'items',
gap = 's',
offset = $bindable(0),
- children
+ children,
+ ...restProps
}: {
items: T[];
limit?: number;
@@ -26,6 +27,7 @@
| undefined;
offset?: number;
children: Snippet<[T[], number]>;
+ [key: string]: any;
} = $props();
let total = $derived(items.length);
@@ -33,7 +35,7 @@
let paginatedItems = $derived(items.slice(offset, offset + limit));
-
+
{@render children(paginatedItems, limit)}
{#if !hideFooter}
diff --git a/src/routes/(console)/organization-[organization]/+page.svelte b/src/routes/(console)/organization-[organization]/+page.svelte
index 46b8f2769f..9fb5468371 100644
--- a/src/routes/(console)/organization-[organization]/+page.svelte
+++ b/src/routes/(console)/organization-[organization]/+page.svelte
@@ -110,7 +110,7 @@
}
$: projectsToArchive = (data.archivedProjectsPage ?? data.projects.projects).filter(
- (project) => (isCloud ? project.status === 'archived' : project.status !== 'active') // fallback for non-cloud
+ (project) => project.status === 'archived'
);
$: activeProjects = (data.activeProjectsPage ?? data.projects.projects).filter(
diff --git a/src/routes/(console)/organization-[organization]/+page.ts b/src/routes/(console)/organization-[organization]/+page.ts
index bf1e20408e..ce972e3ba9 100644
--- a/src/routes/(console)/organization-[organization]/+page.ts
+++ b/src/routes/(console)/organization-[organization]/+page.ts
@@ -21,43 +21,42 @@ export const load: PageLoad = async ({ params, url, route, depends, parent }) =>
const archivedPage = parseInt(url.searchParams.get('archivedPage') || '1');
const archivedOffset = pageToOffset(archivedPage, limit);
- // fetch active projects with offset set
- const activeProjects = await sdk.forConsole.projects.list({
- queries: [
- Query.offset(offset),
- Query.equal('teamId', params.organization),
- Query.or([Query.equal('status', 'active'), Query.isNull('status')]),
- Query.limit(limit),
- Query.orderDesc('')
- ],
- search: search || undefined
- });
-
- // Fetch archived projects with separate pagination
- const archivedProjects = await sdk.forConsole.projects.list({
- queries: [
- Query.offset(archivedOffset),
- Query.equal('teamId', params.organization),
- Query.equal('status', 'archived'),
- Query.limit(limit),
- Query.orderDesc('')
- ],
- search: search || undefined
- });
-
- // get total counts
- const activeTotal = await sdk.forConsole.projects.list({
- queries: [
- Query.equal('teamId', params.organization),
- Query.or([Query.equal('status', 'active'), Query.isNull('status')])
- ],
- search: search || undefined
- });
-
- const archivedTotal = await sdk.forConsole.projects.list({
- queries: [Query.equal('teamId', params.organization), Query.equal('status', 'archived')],
- search: search || undefined
- });
+ const [activeProjects, archivedProjects, activeTotal, archivedTotal] = await Promise.all([
+ sdk.forConsole.projects.list({
+ queries: [
+ Query.offset(offset),
+ Query.equal('teamId', params.organization),
+ Query.or([Query.equal('status', 'active'), Query.isNull('status')]),
+ Query.limit(limit),
+ Query.orderDesc('')
+ ],
+ search: search || undefined
+ }),
+ sdk.forConsole.projects.list({
+ queries: [
+ Query.offset(archivedOffset),
+ Query.equal('teamId', params.organization),
+ Query.equal('status', 'archived'),
+ Query.limit(limit),
+ Query.orderDesc('')
+ ],
+ search: search || undefined
+ }),
+ sdk.forConsole.projects.list({
+ queries: [
+ Query.equal('teamId', params.organization),
+ Query.or([Query.equal('status', 'active'), Query.isNull('status')])
+ ],
+ search: search || undefined
+ }),
+ sdk.forConsole.projects.list({
+ queries: [
+ Query.equal('teamId', params.organization),
+ Query.equal('status', 'archived')
+ ],
+ search: search || undefined
+ })
+ ]);
// set `default` if no region!
for (const project of activeProjects.projects) {
From 7287571c505491f169437a2db3a0fe1f50c1f364 Mon Sep 17 00:00:00 2001
From: Harsh Mahajan <127186841+HarshMN2345@users.noreply.github.com>
Date: Tue, 9 Sep 2025 17:55:32 +0530
Subject: [PATCH 7/9] lint issue
---
src/lib/components/paginationWithLimit.svelte | 2 +-
src/lib/components/paginator.svelte | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/lib/components/paginationWithLimit.svelte b/src/lib/components/paginationWithLimit.svelte
index 7522f35213..b48fbc0f63 100644
--- a/src/lib/components/paginationWithLimit.svelte
+++ b/src/lib/components/paginationWithLimit.svelte
@@ -20,7 +20,7 @@
useCreateLink?: boolean;
pageParam?: string;
removeOnFirstPage?: boolean;
- [key: string]: any;
+ [key: string]: unknown;
} = $props();
const showLimit = $derived(!!useCreateLink);
diff --git a/src/lib/components/paginator.svelte b/src/lib/components/paginator.svelte
index 8a1b2b6de7..053e2ea144 100644
--- a/src/lib/components/paginator.svelte
+++ b/src/lib/components/paginator.svelte
@@ -27,7 +27,7 @@
| undefined;
offset?: number;
children: Snippet<[T[], number]>;
- [key: string]: any;
+ [key: string]: unknown;
} = $props();
let total = $derived(items.length);
From 6ad7ee10c51d556fd563e5f253ca0b4f5eb10f29 Mon Sep 17 00:00:00 2001
From: Harsh Mahajan <127186841+HarshMN2345@users.noreply.github.com>
Date: Mon, 15 Sep 2025 14:00:39 +0530
Subject: [PATCH 8/9] Update
src/routes/(console)/organization-[organization]/+page.ts
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
---
src/routes/(console)/organization-[organization]/+page.ts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/routes/(console)/organization-[organization]/+page.ts b/src/routes/(console)/organization-[organization]/+page.ts
index ce972e3ba9..047a2b965f 100644
--- a/src/routes/(console)/organization-[organization]/+page.ts
+++ b/src/routes/(console)/organization-[organization]/+page.ts
@@ -18,9 +18,9 @@ export const load: PageLoad = async ({ params, url, route, depends, parent }) =>
const offset = pageToOffset(page, limit);
const search = getSearch(url);
- const archivedPage = parseInt(url.searchParams.get('archivedPage') || '1');
+ const archivedPageRaw = parseInt(url.searchParams.get('archivedPage') || '1', 10);
+ const archivedPage = Number.isFinite(archivedPageRaw) && archivedPageRaw > 0 ? archivedPageRaw : 1;
const archivedOffset = pageToOffset(archivedPage, limit);
-
const [activeProjects, archivedProjects, activeTotal, archivedTotal] = await Promise.all([
sdk.forConsole.projects.list({
queries: [
From c8bbb979fc46be1fe017de0538ec004bcb3b9025 Mon Sep 17 00:00:00 2001
From: Harsh Mahajan <127186841+HarshMN2345@users.noreply.github.com>
Date: Mon, 15 Sep 2025 14:06:10 +0530
Subject: [PATCH 9/9] lint issue
---
src/routes/(console)/organization-[organization]/+page.ts | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/routes/(console)/organization-[organization]/+page.ts b/src/routes/(console)/organization-[organization]/+page.ts
index 047a2b965f..f4a520b5c8 100644
--- a/src/routes/(console)/organization-[organization]/+page.ts
+++ b/src/routes/(console)/organization-[organization]/+page.ts
@@ -19,7 +19,8 @@ export const load: PageLoad = async ({ params, url, route, depends, parent }) =>
const search = getSearch(url);
const archivedPageRaw = parseInt(url.searchParams.get('archivedPage') || '1', 10);
- const archivedPage = Number.isFinite(archivedPageRaw) && archivedPageRaw > 0 ? archivedPageRaw : 1;
+ const archivedPage =
+ Number.isFinite(archivedPageRaw) && archivedPageRaw > 0 ? archivedPageRaw : 1;
const archivedOffset = pageToOffset(archivedPage, limit);
const [activeProjects, archivedProjects, activeTotal, archivedTotal] = await Promise.all([
sdk.forConsole.projects.list({