diff --git a/src/lib/profiles.ts b/src/lib/profiles.ts new file mode 100644 index 000000000..4fb91b0a9 --- /dev/null +++ b/src/lib/profiles.ts @@ -0,0 +1,39 @@ +type Profile = { + hasChatLayout: boolean; + hasAuth: boolean; + hasDatabases: boolean; + hasFunctions: boolean; + hasMessages: boolean; + hasStorage: boolean; + hasSites: boolean; +}; + +export const ConsoleCloudProfile: Profile = { + hasChatLayout: false, + hasAuth: true, + hasDatabases: true, + hasFunctions: true, + hasMessages: true, + hasStorage: true, + hasSites: true +}; + +export const ConsoleSelfhostedProfile: Profile = { + hasChatLayout: false, + hasAuth: true, + hasDatabases: true, + hasFunctions: true, + hasMessages: true, + hasStorage: true, + hasSites: true +}; + +export const StudioProfile: Profile = { + hasChatLayout: true, + hasAuth: true, + hasDatabases: true, + hasFunctions: false, + hasMessages: true, + hasStorage: true, + hasSites: true +}; diff --git a/src/lib/system.ts b/src/lib/system.ts index 8cd3a70f3..e3808b221 100644 --- a/src/lib/system.ts +++ b/src/lib/system.ts @@ -1,5 +1,6 @@ import { env } from '$env/dynamic/public'; import { dev } from '$app/environment'; +import { ConsoleCloudProfile, ConsoleSelfhostedProfile, StudioProfile } from '$lib/profiles'; export const enum Mode { CLOUD = 'cloud', @@ -26,6 +27,16 @@ export const ENV = { TEST: !!import.meta.env?.VITEST }; +function getProfile() { + if (PROFILE === Profile.STUDIO) { + return StudioProfile; + } else if (MODE === Mode.CLOUD) { + return ConsoleCloudProfile; + } else { + return ConsoleSelfhostedProfile; + } +} + 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; @@ -35,3 +46,4 @@ export const isDev = ENV.DEV; export const isProd = ENV.PROD; export const hasStripePublicKey = !!VARS.PUBLIC_STRIPE_KEY; export const GRACE_PERIOD_OVERRIDE = false; +export const consoleProfile = getProfile(); diff --git a/src/routes/(console)/+layout.svelte b/src/routes/(console)/+layout.svelte index 21230e6ff..184e5473f 100644 --- a/src/routes/(console)/+layout.svelte +++ b/src/routes/(console)/+layout.svelte @@ -33,7 +33,7 @@ import { openMigrationWizard } from './(migration-wizard)'; import { project } from './project-[project]/store'; import { feedback } from '$lib/stores/feedback'; - import { hasStripePublicKey, isCloud, isStudio, VARS } from '$lib/system'; + import { consoleProfile, hasStripePublicKey, isCloud, isStudio, VARS } from '$lib/system'; import { stripe } from '$lib/stores/stripe'; import MobileSupportModal from './wizard/support/mobileSupportModal.svelte'; import { showSupportModal } from './wizard/support/store'; @@ -330,7 +330,7 @@ -{#if isStudio} +{#if consoleProfile.hasChatLayout} {:else}