diff --git a/src/lib/components/breadcrumbs.svelte b/src/lib/components/breadcrumbs.svelte index e29c4c8d0..7355f8397 100644 --- a/src/lib/components/breadcrumbs.svelte +++ b/src/lib/components/breadcrumbs.svelte @@ -112,10 +112,13 @@ }; if (loadedProjects.total > 1 && selectedOrg) { - const projectLinks = loadedProjects.projects.slice(0, 4).map((project) => ({ - name: project.name, - href: `${base}/project-${project.region}-${project.$id}/overview/platforms` - })); + const projectLinks = loadedProjects.projects.slice(0, 4).map((project) => { + const region = project.region || (!isCloud ? 'default' : project.region); + return { + name: project.name, + href: `${base}/project-${region}-${project.$id}/overview/platforms` + }; + }); if (loadedProjects.projects.length > 4) { projectLinks.push({ @@ -341,7 +344,7 @@
+ href={`${base}/project-${project.region || (!isCloud ? 'default' : project.region)}-${project.$id}/overview/platforms`}> {project.name} diff --git a/src/routes/(console)/project-[region]-[project]/+layout.svelte b/src/routes/(console)/project-[region]-[project]/+layout.svelte index 0254a8cdc..3e5975878 100644 --- a/src/routes/(console)/project-[region]-[project]/+layout.svelte +++ b/src/routes/(console)/project-[region]-[project]/+layout.svelte @@ -25,6 +25,7 @@ canWriteSites } from '$lib/stores/roles'; import CsvImportBox from '$lib/components/csvImportBox.svelte'; + import { isCloud } from '$lib/system'; onMount(() => { return realtime @@ -42,7 +43,8 @@ { label: 'Go to Auth', callback: () => { - goto(`${base}/project-${$project.region}-${$project.$id}/auth`); + const region = $project.region || (!isCloud ? 'default' : $project.region); + goto(`${base}/project-${region}-${$project.$id}/auth`); }, keys: ['g', 'a'], group: 'navigation' @@ -50,7 +52,8 @@ { label: 'Go to Databases', callback: () => { - goto(`${base}/project-${$project.region}-${$project.$id}/databases`); + const region = $project.region || (!isCloud ? 'default' : $project.region); + goto(`${base}/project-${region}-${$project.$id}/databases`); }, keys: ['g', 'd'], group: 'navigation', @@ -59,7 +62,8 @@ { label: 'Go to Functions', callback: () => { - goto(`${base}/project-${$project.region}-${$project.$id}/functions`); + const region = $project.region || (!isCloud ? 'default' : $project.region); + goto(`${base}/project-${region}-${$project.$id}/functions`); }, keys: ['g', 'f'], group: 'navigation', @@ -68,7 +72,8 @@ { label: 'Go to Messaging', callback: () => { - goto(`${base}/project-${$project.region}-${$project.$id}/messaging`); + const region = $project.region || (!isCloud ? 'default' : $project.region); + goto(`${base}/project-${region}-${$project.$id}/messaging`); }, keys: ['g', 'm'], disabled: page.url.pathname.endsWith('messaging') || !$canSeeMessages, @@ -77,7 +82,8 @@ { label: 'Go to Storage', callback: () => { - goto(`${base}/project-${$project.region}-${$project.$id}/storage`); + const region = $project.region || (!isCloud ? 'default' : $project.region); + goto(`${base}/project-${region}-${$project.$id}/storage`); }, keys: ['g', 's'], group: 'navigation', @@ -86,7 +92,8 @@ { label: 'Go to Settings', callback: () => { - goto(`${base}/project-${$project.region}-${$project.$id}/settings`); + const region = $project.region || (!isCloud ? 'default' : $project.region); + goto(`${base}/project-${region}-${$project.$id}/settings`); }, keys: ['g', 'e'], group: 'navigation', @@ -95,7 +102,8 @@ { label: 'Go to Sites', callback: () => { - goto(`${base}/project-${$project.region}-${$project.$id}/sites`); + const region = $project.region || (!isCloud ? 'default' : $project.region); + goto(`${base}/project-${region}-${$project.$id}/sites`); }, keys: ['g', 'i'], group: 'navigation', @@ -104,7 +112,8 @@ { label: 'Go to Overview', callback: () => { - goto(`${base}/project-${$project.region}-${$project.$id}`); + const region = $project.region || (!isCloud ? 'default' : $project.region); + goto(`${base}/project-${region}-${$project.$id}`); }, keys: ['g', 'o'], group: 'navigation' diff --git a/src/routes/(console)/project-[region]-[project]/+layout.ts b/src/routes/(console)/project-[region]-[project]/+layout.ts index c1fb52045..77df693ca 100644 --- a/src/routes/(console)/project-[region]-[project]/+layout.ts +++ b/src/routes/(console)/project-[region]-[project]/+layout.ts @@ -17,6 +17,8 @@ export const load: LayoutLoad = async ({ params, depends, parent }) => { const project = await sdk.forConsole.projects.get(params.project); + if (!isCloud && !project.region) project.region = 'default'; + // fast path without a network call! let organization = (organizations as OrganizationList)?.teams?.find( (org) => org.$id === project.teamId