Skip to content

Commit 1044282

Browse files
feat: studio template route
1 parent e63a0cf commit 1044282

4 files changed

Lines changed: 91 additions & 7 deletions

File tree

  • src/routes/(console)
Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { redirect } from '@sveltejs/kit';
2-
import { base } from '$app/paths';
2+
import { resolve } from '$app/paths';
33
import type { PageLoad } from './$types';
44
import { resolvedProfile } from '$lib/profiles/index.svelte';
55

@@ -9,7 +9,12 @@ export const load: PageLoad = async ({ parent }) => {
99
const teamId =
1010
account.prefs[resolvedProfile.organizationPrefKey] ?? organizations.teams[0]?.$id;
1111
if (teamId) {
12-
redirect(303, `${base}/organization-${teamId}/members`);
12+
redirect(
13+
303,
14+
resolve('/(console)/organization-[organization]/members', {
15+
organization: teamId
16+
})
17+
);
1318
}
14-
redirect(303, base);
19+
redirect(303, resolve('/'));
1520
};
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { redirect } from '@sveltejs/kit';
2+
import { resolve } from '$app/paths';
3+
import type { PageLoad } from './$types';
4+
import { resolvedProfile } from '$lib/profiles/index.svelte';
5+
6+
export const load: PageLoad = async ({ parent, params }) => {
7+
const { organizations, account } = await parent();
8+
9+
const teamId =
10+
account.prefs[resolvedProfile.organizationPrefKey] ?? organizations.teams[0]?.$id;
11+
if (teamId) {
12+
redirect(
13+
303,
14+
resolve(
15+
'/(console)/organization-[organization]/(studio)/template-[region]-[template]',
16+
{
17+
organization: teamId,
18+
template: params.template,
19+
region: params.region
20+
}
21+
)
22+
);
23+
}
24+
redirect(303, resolve('/'));
25+
};
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
<script lang="ts">
2+
import { onDestroy, onMount, tick } from 'svelte';
3+
import {
4+
attachStudioTo,
5+
ensureStudioComponent,
6+
hideStudio,
7+
navigateToRoute
8+
} from '$lib/studio/studio-widget';
9+
import { resolvedProfile } from '$lib/profiles/index.svelte';
10+
11+
let { params } = $props();
12+
let anchor: HTMLElement = $state();
13+
14+
function positionStudio() {
15+
if (!anchor) return;
16+
attachStudioTo(anchor, { offsetX: 0, offsetY: 0 });
17+
}
18+
19+
onMount(async () => {
20+
ensureStudioComponent();
21+
await tick();
22+
positionStudio();
23+
navigateToRoute({
24+
id: 'view',
25+
props: {
26+
projectId: params.template,
27+
region: params.region
28+
}
29+
});
30+
});
31+
32+
onDestroy(() => {
33+
hideStudio();
34+
});
35+
36+
$effect(() => {
37+
positionStudio();
38+
});
39+
</script>
40+
41+
<svelte:head>
42+
<title>Template - {resolvedProfile.platform}</title>
43+
</svelte:head>
44+
45+
<div class="studio-page" bind:this={anchor}></div>
46+
47+
<style>
48+
.studio-page {
49+
position: relative;
50+
width: 100%;
51+
background: var(--bgcolor-neutral-primary);
52+
}
53+
</style>

src/routes/(console)/project-[region]-[project]/(studio)/studio/+page.svelte

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@
66
hideStudio,
77
navigateToRoute
88
} from '$lib/studio/studio-widget';
9-
import { page } from '$app/state';
109
import { getPageTitle } from '../../store';
1110
import { resolvedProfile } from '$lib/profiles/index.svelte';
11+
import type { PageProps } from './$types';
1212
13+
let { params, data }: PageProps = $props();
1314
let anchor: HTMLElement = $state();
1415
1516
function positionStudio() {
@@ -24,8 +25,8 @@
2425
navigateToRoute({
2526
id: 'project',
2627
props: {
27-
projectId: page.params.project,
28-
region: page.params.region
28+
projectId: params.project,
29+
region: params.region
2930
}
3031
});
3132
});
@@ -40,7 +41,7 @@
4041
</script>
4142

4243
<svelte:head>
43-
<title>{getPageTitle(page.data?.project?.name, 'Studio', resolvedProfile.platform)}</title>
44+
<title>{getPageTitle(data.project.name, 'Studio', resolvedProfile.platform)}</title>
4445
</svelte:head>
4546

4647
<div class="studio-page" bind:this={anchor}></div>

0 commit comments

Comments
 (0)