From 67a42c6ebea70bbdfd7cd59d1f5e6603893c59a9 Mon Sep 17 00:00:00 2001 From: robertkasza Date: Sat, 8 Nov 2025 17:27:53 +0100 Subject: [PATCH] fix(dashboard): Display the correct applicatuion state for new projects --- .../layout/OrgLayout/ProjectViewWithState.tsx | 18 ++++++++++++++++-- dashboard/src/pages/onboarding/project.tsx | 1 + .../src/pages/orgs/[orgSlug]/projects/new.tsx | 2 +- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/dashboard/src/features/orgs/layout/OrgLayout/ProjectViewWithState.tsx b/dashboard/src/features/orgs/layout/OrgLayout/ProjectViewWithState.tsx index 8275b72d5..429194c19 100644 --- a/dashboard/src/features/orgs/layout/OrgLayout/ProjectViewWithState.tsx +++ b/dashboard/src/features/orgs/layout/OrgLayout/ProjectViewWithState.tsx @@ -8,6 +8,7 @@ import { ApplicationStatus } from '@/types/application'; import { useRouter } from 'next/router'; import { type PropsWithChildren, useMemo } from 'react'; +import { isNotEmptyValue } from '@/lib/utils'; import PausedProjectContent from './PausedProjectContent'; function ProjectViewWithState({ children }: PropsWithChildren) { @@ -26,10 +27,23 @@ function ProjectViewWithState({ children }: PropsWithChildren) { } switch (state) { - case ApplicationStatus.Empty: + case ApplicationStatus.Empty: { + const newProjectData = sessionStorage.getItem('newProject'); + // eslint-disable-next-line no-console + console.log('new project request sent state is empty'); + if ( + isNotEmptyValue(newProjectData) && + JSON.parse(newProjectData).subdomain === appSubdomain + ) { + return ; + } + return null; - case ApplicationStatus.Provisioning: + } + case ApplicationStatus.Provisioning: { + sessionStorage.removeItem('newProject'); return ; + } case ApplicationStatus.Errored: if (isOnOverviewPage) { return ( diff --git a/dashboard/src/pages/onboarding/project.tsx b/dashboard/src/pages/onboarding/project.tsx index cd1e09816..d06a2697d 100644 --- a/dashboard/src/pages/onboarding/project.tsx +++ b/dashboard/src/pages/onboarding/project.tsx @@ -140,6 +140,7 @@ export default function OnboardingProjectPage() { // clear onboarding flow and redirect to project dashboard sessionStorage.removeItem('onboarding'); + sessionStorage.setItem('newProject', JSON.stringify({ subdomain })); router.push(`/orgs/${selectedOrg?.slug}/projects/${subdomain}`); } }, diff --git a/dashboard/src/pages/orgs/[orgSlug]/projects/new.tsx b/dashboard/src/pages/orgs/[orgSlug]/projects/new.tsx index 0bed2ea13..9ef2a657a 100644 --- a/dashboard/src/pages/orgs/[orgSlug]/projects/new.tsx +++ b/dashboard/src/pages/orgs/[orgSlug]/projects/new.tsx @@ -121,7 +121,7 @@ export function NewProjectPageContent({ regionId: selectedRegion.id, regionName: selectedRegion.name, }); - + sessionStorage.setItem('newProject', JSON.stringify({ subdomain })); await router.push(`/orgs/${selectedOrg.slug}/projects/${subdomain}`); } },