From 6c9127427c6c915044352bef10f158727c412fcd Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Tue, 26 Mar 2024 10:43:56 +0000 Subject: [PATCH] Fix issues with colours in app skeletons --- .../[screenId]/_components/AppPreview.svelte | 4 ++-- packages/builder/src/stores/builder/theme.js | 15 ++++++++++----- packages/client/src/stores/theme.js | 11 ++--------- packages/frontend-core/src/utils/index.js | 1 + packages/frontend-core/src/utils/theme.js | 12 ++++++++++++ 5 files changed, 27 insertions(+), 16 deletions(-) create mode 100644 packages/frontend-core/src/utils/theme.js diff --git a/packages/builder/src/pages/builder/app/[application]/design/[screenId]/_components/AppPreview.svelte b/packages/builder/src/pages/builder/app/[application]/design/[screenId]/_components/AppPreview.svelte index 12d572ecc4..44394fa7ee 100644 --- a/packages/builder/src/pages/builder/app/[application]/design/[screenId]/_components/AppPreview.svelte +++ b/packages/builder/src/pages/builder/app/[application]/design/[screenId]/_components/AppPreview.svelte @@ -247,9 +247,9 @@
- {#if loading} + {#if loading || true}
diff --git a/packages/builder/src/stores/builder/theme.js b/packages/builder/src/stores/builder/theme.js index afdf3e9805..efa2609b97 100644 --- a/packages/builder/src/stores/builder/theme.js +++ b/packages/builder/src/stores/builder/theme.js @@ -1,5 +1,6 @@ import { writable, get } from "svelte/store" import { API } from "api" +import { getBaseTheme } from "@budibase/frontend-core" const INITIAL_THEMES_STATE = { theme: "", @@ -12,11 +13,15 @@ export const themes = () => { }) const syncAppTheme = app => { - store.update(state => ({ - ...state, - theme: app.theme || "spectrum--light", - customTheme: app.customTheme, - })) + store.update(state => { + const theme = app.theme || "spectrum--light" + return { + ...state, + theme, + baseTheme: getBaseTheme(theme), + customTheme: app.customTheme, + } + }) } const save = async (theme, appId) => { diff --git a/packages/client/src/stores/theme.js b/packages/client/src/stores/theme.js index 8877556f0c..50dad12fa4 100644 --- a/packages/client/src/stores/theme.js +++ b/packages/client/src/stores/theme.js @@ -1,7 +1,7 @@ import { derived } from "svelte/store" import { appStore } from "./app" import { builderStore } from "./builder" -import { Constants } from "@budibase/frontend-core" +import { getBaseTheme } from "@budibase/frontend-core" // This is the good old acorn bug where having the word "g l o b a l" makes it // think that this is not ES6 compatible and starts throwing errors when using @@ -29,13 +29,6 @@ const createThemeStore = () => { // Ensure theme is set theme = theme || defaultTheme - // Get base theme - let base = - Constants.Themes.find(x => `spectrum--${x.class}` === theme)?.base || "" - if (base) { - base = `spectrum--${base}` - } - // Delete and nullish keys from the custom theme if (customTheme) { Object.entries(customTheme).forEach(([key, value]) => { @@ -59,7 +52,7 @@ const createThemeStore = () => { return { theme, - baseTheme: base, + baseTheme: getBaseTheme(theme), customTheme, customThemeCss, } diff --git a/packages/frontend-core/src/utils/index.js b/packages/frontend-core/src/utils/index.js index 98998b7f0e..6b79e1d040 100644 --- a/packages/frontend-core/src/utils/index.js +++ b/packages/frontend-core/src/utils/index.js @@ -7,3 +7,4 @@ export * as RowUtils from "./rows" export { memo, derivedMemo } from "./memo" export { createWebsocket } from "./websocket" export * from "./download" +export * from "./theme" diff --git a/packages/frontend-core/src/utils/theme.js b/packages/frontend-core/src/utils/theme.js new file mode 100644 index 0000000000..165f7c9782 --- /dev/null +++ b/packages/frontend-core/src/utils/theme.js @@ -0,0 +1,12 @@ +import { Themes } from "../constants.js" + +export const getBaseTheme = theme => { + if (!theme) { + return "" + } + let base = Themes.find(x => `spectrum--${x.class}` === theme)?.base || "" + if (base) { + base = `spectrum--${base}` + } + return base +}