diff --git a/.server-changes/bound-project-environment-loads.md b/.server-changes/bound-project-environment-loads.md new file mode 100644 index 0000000000..6dfa59bc7e --- /dev/null +++ b/.server-changes/bound-project-environment-loads.md @@ -0,0 +1,6 @@ +--- +area: webapp +type: improvement +--- + +Project pages now load faster for projects with a large number of preview branches, by no longer loading archived branch environments that aren't shown. diff --git a/apps/webapp/app/presenters/ProjectPresenter.server.ts b/apps/webapp/app/presenters/ProjectPresenter.server.ts index 66b51a33b5..773b78edab 100644 --- a/apps/webapp/app/presenters/ProjectPresenter.server.ts +++ b/apps/webapp/app/presenters/ProjectPresenter.server.ts @@ -30,6 +30,7 @@ export class ProjectPresenter { version: true, externalRef: true, environments: { + where: { archivedAt: null }, select: { id: true, slug: true, diff --git a/apps/webapp/app/presenters/SelectBestEnvironmentPresenter.server.ts b/apps/webapp/app/presenters/SelectBestEnvironmentPresenter.server.ts index 13d8691192..29559a87a3 100644 --- a/apps/webapp/app/presenters/SelectBestEnvironmentPresenter.server.ts +++ b/apps/webapp/app/presenters/SelectBestEnvironmentPresenter.server.ts @@ -46,6 +46,7 @@ export class SelectBestEnvironmentPresenter { include: { organization: true, environments: { + where: { archivedAt: null }, select: { id: true, type: true, @@ -71,6 +72,7 @@ export class SelectBestEnvironmentPresenter { include: { organization: true, environments: { + where: { archivedAt: null }, select: { id: true, type: true, diff --git a/apps/webapp/app/presenters/v3/DeploymentListPresenter.server.ts b/apps/webapp/app/presenters/v3/DeploymentListPresenter.server.ts index b4b236a491..6d758f6b5a 100644 --- a/apps/webapp/app/presenters/v3/DeploymentListPresenter.server.ts +++ b/apps/webapp/app/presenters/v3/DeploymentListPresenter.server.ts @@ -43,24 +43,6 @@ export class DeploymentListPresenter { const project = await this.#prismaClient.project.findFirstOrThrow({ select: { id: true, - environments: { - select: { - id: true, - type: true, - slug: true, - orgMember: { - select: { - user: { - select: { - id: true, - name: true, - displayName: true, - }, - }, - }, - }, - }, - }, connectedGithubRepository: { select: { branchTracking: true, diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam._index/route.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam._index/route.tsx index 91854efbc2..0874432fe5 100644 --- a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam._index/route.tsx +++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam._index/route.tsx @@ -17,6 +17,7 @@ export const loader = async ({ request, params }: LoaderFunctionArgs) => { }, include: { environments: { + where: { archivedAt: null }, select: { id: true, type: true, diff --git a/apps/webapp/app/routes/orgs.$organizationSlug.projects.$projectParam.apikeys.ts b/apps/webapp/app/routes/orgs.$organizationSlug.projects.$projectParam.apikeys.ts index f348731051..51bdb7879d 100644 --- a/apps/webapp/app/routes/orgs.$organizationSlug.projects.$projectParam.apikeys.ts +++ b/apps/webapp/app/routes/orgs.$organizationSlug.projects.$projectParam.apikeys.ts @@ -16,6 +16,7 @@ export const loader = async ({ request, params }: LoaderFunctionArgs) => { }, include: { environments: { + where: { archivedAt: null }, select: { id: true, type: true, diff --git a/apps/webapp/app/routes/orgs.$organizationSlug.projects.$projectParam.concurrency.ts b/apps/webapp/app/routes/orgs.$organizationSlug.projects.$projectParam.concurrency.ts index de31a13736..4bde0ccaef 100644 --- a/apps/webapp/app/routes/orgs.$organizationSlug.projects.$projectParam.concurrency.ts +++ b/apps/webapp/app/routes/orgs.$organizationSlug.projects.$projectParam.concurrency.ts @@ -16,6 +16,7 @@ export const loader = async ({ request, params }: LoaderFunctionArgs) => { }, include: { environments: { + where: { archivedAt: null }, select: { id: true, type: true, diff --git a/apps/webapp/app/routes/orgs.$organizationSlug.projects.$projectParam.environment-variables.ts b/apps/webapp/app/routes/orgs.$organizationSlug.projects.$projectParam.environment-variables.ts index 13a79aaad3..23208dda6a 100644 --- a/apps/webapp/app/routes/orgs.$organizationSlug.projects.$projectParam.environment-variables.ts +++ b/apps/webapp/app/routes/orgs.$organizationSlug.projects.$projectParam.environment-variables.ts @@ -16,6 +16,7 @@ export const loader = async ({ request, params }: LoaderFunctionArgs) => { }, include: { environments: { + where: { archivedAt: null }, select: { id: true, type: true, diff --git a/apps/webapp/app/routes/orgs.$organizationSlug.projects.$projectParam.settings.ts b/apps/webapp/app/routes/orgs.$organizationSlug.projects.$projectParam.settings.ts index 0ac309bbeb..aef178d2e5 100644 --- a/apps/webapp/app/routes/orgs.$organizationSlug.projects.$projectParam.settings.ts +++ b/apps/webapp/app/routes/orgs.$organizationSlug.projects.$projectParam.settings.ts @@ -16,6 +16,7 @@ export const loader = async ({ request, params }: LoaderFunctionArgs) => { }, include: { environments: { + where: { archivedAt: null }, select: { id: true, type: true,