diff --git a/lerna.json b/lerna.json
index 03bbdbca7e..1211410724 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,5 +1,5 @@
{
- "version": "2.7.7-alpha.4",
+ "version": "2.7.7-alpha.6",
"npmClient": "yarn",
"packages": [
"packages/backend-core",
diff --git a/packages/builder/src/builderStore/store/frontend.js b/packages/builder/src/builderStore/store/frontend.js
index 7f83b2b464..d0414b5733 100644
--- a/packages/builder/src/builderStore/store/frontend.js
+++ b/packages/builder/src/builderStore/store/frontend.js
@@ -74,6 +74,7 @@ const INITIAL_FRONTEND_STATE = {
propertyFocus: null,
builderSidePanel: false,
hasLock: true,
+ showPreview: false,
// URL params
selectedScreenId: null,
diff --git a/packages/builder/src/components/commandPalette/CommandPalette.svelte b/packages/builder/src/components/commandPalette/CommandPalette.svelte
index ae946dc10c..3a369446a3 100644
--- a/packages/builder/src/components/commandPalette/CommandPalette.svelte
+++ b/packages/builder/src/components/commandPalette/CommandPalette.svelte
@@ -69,7 +69,7 @@
name: "App",
description: "",
icon: "Play",
- action: () => window.open(`/${$store.appId}`),
+ action: () => store.update(state => ({ ...state, showPreview: true })),
},
{
type: "Preview",
diff --git a/packages/builder/src/components/deploy/AppActions.svelte b/packages/builder/src/components/deploy/AppActions.svelte
index 9813237317..a85eb5a154 100644
--- a/packages/builder/src/components/deploy/AppActions.svelte
+++ b/packages/builder/src/components/deploy/AppActions.svelte
@@ -62,7 +62,10 @@
}
const previewApp = () => {
- window.open(`/${application}`)
+ store.update(state => ({
+ ...state,
+ showPreview: true,
+ }))
}
const viewApp = () => {
diff --git a/packages/builder/src/pages/builder/app/[application]/_components/PreviewOverlay.svelte b/packages/builder/src/pages/builder/app/[application]/_components/PreviewOverlay.svelte
new file mode 100644
index 0000000000..d069d1b4c7
--- /dev/null
+++ b/packages/builder/src/pages/builder/app/[application]/_components/PreviewOverlay.svelte
@@ -0,0 +1,91 @@
+
+
+
+
+
diff --git a/packages/builder/src/pages/builder/app/[application]/_layout.svelte b/packages/builder/src/pages/builder/app/[application]/_layout.svelte
index f13aa3dab6..ee3f6e877e 100644
--- a/packages/builder/src/pages/builder/app/[application]/_layout.svelte
+++ b/packages/builder/src/pages/builder/app/[application]/_layout.svelte
@@ -24,6 +24,7 @@
import BuilderSidePanel from "./_components/BuilderSidePanel.svelte"
import UserAvatars from "./_components/UserAvatars.svelte"
import { TOUR_KEYS, TOURS } from "components/portal/onboarding/tours.js"
+ import PreviewOverlay from "./_components/PreviewOverlay.svelte"
export let application
@@ -140,7 +141,7 @@
{/if}
-
+
{#if $store.initialised}
@@ -230,6 +231,10 @@
{/await}
+{#if $store.showPreview}
+
+{/if}
+
@@ -248,6 +253,10 @@
width: 100%;
display: flex;
flex-direction: column;
+ transition: filter 260ms ease-out;
+ }
+ .root.blur {
+ filter: blur(8px);
}
.top-nav {
diff --git a/packages/client/src/api/api.js b/packages/client/src/api/api.js
index 8d29d37bd6..b4a137f85d 100644
--- a/packages/client/src/api/api.js
+++ b/packages/client/src/api/api.js
@@ -1,7 +1,6 @@
import { createAPIClient } from "@budibase/frontend-core"
-import { notificationStore } from "../stores/notification.js"
import { authStore } from "../stores/auth.js"
-import { devToolsStore } from "../stores/devTools.js"
+import { notificationStore, devToolsEnabled, devToolsStore } from "../stores/"
import { get } from "svelte/store"
export const API = createAPIClient({
@@ -25,9 +24,10 @@ export const API = createAPIClient({
}
// Add role header
- const devToolsState = get(devToolsStore)
- if (devToolsState.enabled && devToolsState.role) {
- headers["x-budibase-role"] = devToolsState.role
+ const $devToolsStore = get(devToolsStore)
+ const $devToolsEnabled = get(devToolsEnabled)
+ if ($devToolsEnabled && $devToolsStore.role) {
+ headers["x-budibase-role"] = $devToolsStore.role
}
},
diff --git a/packages/client/src/components/ClientApp.svelte b/packages/client/src/components/ClientApp.svelte
index ce8722bb9b..f9ecb495d1 100644
--- a/packages/client/src/components/ClientApp.svelte
+++ b/packages/client/src/components/ClientApp.svelte
@@ -17,6 +17,7 @@
appStore,
devToolsStore,
environmentStore,
+ devToolsEnabled,
} from "stores"
import NotificationDisplay from "components/overlay/NotificationDisplay.svelte"
import ConfirmationDisplay from "components/overlay/ConfirmationDisplay.svelte"
@@ -47,10 +48,7 @@
let permissionError = false
// Determine if we should show devtools or not
- $: showDevTools =
- !$builderStore.inBuilder &&
- $devToolsStore.enabled &&
- !$routeStore.queryParams?.peek
+ $: showDevTools = $devToolsEnabled && !$routeStore.queryParams?.peek
// Handle no matching route
$: {
@@ -107,6 +105,7 @@
lang="en"
dir="ltr"
class="spectrum spectrum--medium {$themeStore.baseTheme} {$themeStore.theme}"
+ class:builder={$builderStore.inBuilder}
>
@@ -223,12 +222,14 @@
overflow: hidden;
height: 100%;
width: 100%;
- background: transparent;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
}
+ #spectrum-root.builder {
+ background: transparent;
+ }
#clip-root {
max-width: 100%;
diff --git a/packages/client/src/components/devtools/DevToolsHeader.svelte b/packages/client/src/components/devtools/DevToolsHeader.svelte
index 4dfaae610f..5cbbf80767 100644
--- a/packages/client/src/components/devtools/DevToolsHeader.svelte
+++ b/packages/client/src/components/devtools/DevToolsHeader.svelte
@@ -1,5 +1,5 @@