From ed7ee6430a4a050b997276d2b9e4ec8f99dcd6cb Mon Sep 17 00:00:00 2001 From: ernstmul Date: Tue, 1 Apr 2025 12:45:36 +0200 Subject: [PATCH] Redirect to org on studio --- src/lib/system.ts | 10 +++++++++- .../(console)/organization-[organization]/+page.ts | 3 ++- .../organization-[organization]/billing/+page.ts | 3 ++- .../domain-[domain]/settings/changeOrganization.svelte | 3 ++- src/routes/(studio)/org-[organization]/+page.svelte | 1 + src/routes/+page.ts | 9 +++++++-- 6 files changed, 23 insertions(+), 6 deletions(-) create mode 100644 src/routes/(studio)/org-[organization]/+page.svelte diff --git a/src/lib/system.ts b/src/lib/system.ts index 15f745577..8cd3a70f3 100644 --- a/src/lib/system.ts +++ b/src/lib/system.ts @@ -6,11 +6,17 @@ export const enum Mode { SELF_HOSTED = 'self-hosted' } +export const enum Profile { + CONSOLE = 'console', + STUDIO = 'studio' +} + export const VARS = { CONSOLE_MODE: (env.PUBLIC_CONSOLE_MODE as Mode) ?? undefined, APPWRITE_ENDPOINT: env.PUBLIC_APPWRITE_ENDPOINT ?? undefined, GROWTH_ENDPOINT: env.PUBLIC_GROWTH_ENDPOINT ?? undefined, - PUBLIC_STRIPE_KEY: env.PUBLIC_STRIPE_KEY ?? undefined + PUBLIC_STRIPE_KEY: env.PUBLIC_STRIPE_KEY ?? undefined, + PROJECT_PROFILE: (env.PUBLIC_PROJECT_PROFILE as Profile) ?? undefined }; export const ENV = { @@ -21,7 +27,9 @@ export const ENV = { }; export const MODE = VARS.CONSOLE_MODE === Mode.CLOUD ? Mode.CLOUD : Mode.SELF_HOSTED; +export const PROFILE = VARS.PROJECT_PROFILE === Profile.CONSOLE ? Profile.CONSOLE : Profile.STUDIO; export const isCloud = MODE === Mode.CLOUD; +export const isStudio = PROFILE === Profile.STUDIO; export const isSelfHosted = MODE !== Mode.CLOUD; export const isDev = ENV.DEV; export const isProd = ENV.PROD; diff --git a/src/routes/(console)/organization-[organization]/+page.ts b/src/routes/(console)/organization-[organization]/+page.ts index 0282852c2..de073e38c 100644 --- a/src/routes/(console)/organization-[organization]/+page.ts +++ b/src/routes/(console)/organization-[organization]/+page.ts @@ -4,6 +4,7 @@ import { getLimit, getPage, pageToOffset } from '$lib/helpers/load'; import { CARD_LIMIT, Dependencies } from '$lib/constants'; import type { PageLoad } from './$types'; import { redirect } from '@sveltejs/kit'; +import { base } from '$app/paths'; export const load: PageLoad = async ({ params, url, route, depends, parent }) => { const { scopes } = await parent(); @@ -12,7 +13,7 @@ export const load: PageLoad = async ({ params, url, route, depends, parent }) => const limit = getLimit(url, route, CARD_LIMIT); const offset = pageToOffset(page, limit); if (!scopes.includes('projects.read') && scopes.includes('billing.read')) { - return redirect(301, `/console/organization-${params.organization}/billing`); + return redirect(301, `${base}/organization-${params.organization}/billing`); } return { diff --git a/src/routes/(console)/organization-[organization]/billing/+page.ts b/src/routes/(console)/organization-[organization]/billing/+page.ts index 36247292e..2c3c8cef3 100644 --- a/src/routes/(console)/organization-[organization]/billing/+page.ts +++ b/src/routes/(console)/organization-[organization]/billing/+page.ts @@ -5,12 +5,13 @@ import { sdk } from '$lib/stores/sdk'; import { redirect } from '@sveltejs/kit'; import type { PageLoad } from './$types'; import { Query } from '@appwrite.io/console'; +import { base } from '$app/paths'; export const load: PageLoad = async ({ parent, depends }) => { const { organization, scopes } = await parent(); if (!scopes.includes('billing.read')) { - return redirect(301, `/console/organization-${organization.$id}`); + return redirect(301, `${base}/organization-${organization.$id}`); } depends(Dependencies.PAYMENT_METHODS); depends(Dependencies.ORGANIZATION); diff --git a/src/routes/(console)/organization-[organization]/domains/domain-[domain]/settings/changeOrganization.svelte b/src/routes/(console)/organization-[organization]/domains/domain-[domain]/settings/changeOrganization.svelte index e505a962f..cb286576d 100644 --- a/src/routes/(console)/organization-[organization]/domains/domain-[domain]/settings/changeOrganization.svelte +++ b/src/routes/(console)/organization-[organization]/domains/domain-[domain]/settings/changeOrganization.svelte @@ -8,6 +8,7 @@ import { addNotification } from '$lib/stores/notifications'; import type { OrganizationList } from '$lib/stores/organization'; import { sdk } from '$lib/stores/sdk'; + import { base } from '$app/paths'; export let domain: Domain; export let organizations: OrganizationList; @@ -20,7 +21,7 @@ type: 'success', message: 'Domain moved successfully' }); - await goto(`/console/organization-${selectedOrg}/domains/`); + await goto(`${base}/organization-${selectedOrg}/domains/`); await invalidate(Dependencies.ORGANIZATION); await invalidate(Dependencies.DOMAINS); } catch (e) { diff --git a/src/routes/(studio)/org-[organization]/+page.svelte b/src/routes/(studio)/org-[organization]/+page.svelte new file mode 100644 index 000000000..f35e3e4e7 --- /dev/null +++ b/src/routes/(studio)/org-[organization]/+page.svelte @@ -0,0 +1 @@ +Hey studio! diff --git a/src/routes/+page.ts b/src/routes/+page.ts index 625a46dec..b7e139a94 100644 --- a/src/routes/+page.ts +++ b/src/routes/+page.ts @@ -2,7 +2,7 @@ import { redirect } from '@sveltejs/kit'; import { base } from '$app/paths'; import type { PageLoad } from './$types'; import { sdk } from '$lib/stores/sdk'; -import { VARS } from '$lib/system'; +import { isStudio, VARS } from '$lib/system'; const handleGithubEducationMembership = async (name: string, email: string) => { const result = await sdk.forConsole.billing.setMembership('github-student-developer'); @@ -39,7 +39,12 @@ export const load: PageLoad = async ({ parent, url }) => { if (!teamId) { redirect(303, `${base}/account/organizations${url.search}`); } else { - redirect(303, `${base}/organization-${teamId}${url.search}`); + redirect( + 303, + isStudio + ? `${base}/org-${teamId}${url.search}` + : `${base}/organization-${teamId}${url.search}` + ); } } else { redirect(303, `${base}/onboarding/create-project${url.search}`);