diff --git a/src/lib/studio/mobileMessage.svelte b/src/lib/studio/mobileMessage.svelte new file mode 100644 index 0000000000..84f4be3abf --- /dev/null +++ b/src/lib/studio/mobileMessage.svelte @@ -0,0 +1,68 @@ + + +{#if $isSmallViewport} +
+
+ + + + + + This experience needs a larger screen + + + We're working on making Imagine Studio fully responsive for mobile + devices. For the best experience, please use Imagine Studio on a desktop + or tablet with a larger screen. + + +
+ + + + + You can use desktop mode in your mobile's browser to access Studio + +
+
+
+
+
+{/if} + + diff --git a/src/routes/(console)/project-[region]-[project]/(studio)/studio/+page.svelte b/src/routes/(console)/project-[region]-[project]/(studio)/studio/+page.svelte index b53b8e44ed..6c5c204287 100644 --- a/src/routes/(console)/project-[region]-[project]/(studio)/studio/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/(studio)/studio/+page.svelte @@ -9,6 +9,8 @@ import { getPageTitle } from '../../store'; import { resolvedProfile } from '$lib/profiles/index.svelte'; import type { PageProps } from './$types'; + import { isSmallViewport } from '$lib/stores/viewport'; + import MobileMessage from '$lib/studio/mobileMessage.svelte'; let { params, data }: PageProps = $props(); let anchor: HTMLElement = $state(); @@ -19,16 +21,18 @@ } onMount(async () => { - ensureStudioComponent(); - await tick(); - positionStudio(); - navigateToRoute({ - id: 'project', - props: { - projectId: params.project, - region: params.region - } - }); + if (!$isSmallViewport) { + ensureStudioComponent(); + await tick(); + positionStudio(); + navigateToRoute({ + id: 'project', + props: { + projectId: params.project, + region: params.region + } + }); + } }); onDestroy(() => { @@ -36,7 +40,9 @@ }); $effect(() => { - positionStudio(); + if (!$isSmallViewport && anchor) { + positionStudio(); + } }); @@ -44,7 +50,11 @@ {getPageTitle(data.project.name, 'Studio', resolvedProfile.platform)} -
+{#if $isSmallViewport} + +{:else} +
+{/if}