From 1e7456a31cb1cb38d3dc905bf911538ee810d6ce Mon Sep 17 00:00:00 2001 From: Peter Clement Date: Fri, 2 May 2025 11:20:37 +0100 Subject: [PATCH 1/8] Fix issue where AI config screen would flicker briefly on load --- .../builder/portal/settings/ai/index.svelte | 130 +++++++++--------- 1 file changed, 67 insertions(+), 63 deletions(-) diff --git a/packages/builder/src/pages/builder/portal/settings/ai/index.svelte b/packages/builder/src/pages/builder/portal/settings/ai/index.svelte index 1b23c81ad9..cc881bb101 100644 --- a/packages/builder/src/pages/builder/portal/settings/ai/index.svelte +++ b/packages/builder/src/pages/builder/portal/settings/ai/index.svelte @@ -35,6 +35,7 @@ }, }) + let mounted = false let aiConfig: AIConfig let configModal: { show: () => void; hide: () => void } let portalModal: { show: () => void; hide: () => void } @@ -153,80 +154,83 @@ aiConfig = (await API.getConfig(ConfigType.AI)) as AIConfig const licenseKeyResponse = await API.getLicenseKey() hasLicenseKey = licenseKeyResponse?.licenseKey + mounted = true } catch { notifications.error("Error fetching AI settings") } }) - - -
- AI -
- - Connect an LLM to enable AI features. You can only enable one LLM at a - time. - -
- +{#if mounted} + + +
+ AI +
+ + Connect an LLM to enable AI features. You can only enable one LLM at a + time. + +
+ - {#if !activeProvider && !$bannerStore} - From d19f95f2ec0126b1c944c060d270fcdee311d187 Mon Sep 17 00:00:00 2001 From: Peter Clement Date: Tue, 6 May 2025 11:31:14 +0100 Subject: [PATCH 5/8] use api response as a mount check --- .../src/pages/builder/portal/settings/ai/AISettings.spec.js | 1 + .../builder/src/pages/builder/portal/settings/ai/index.svelte | 4 +--- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/builder/src/pages/builder/portal/settings/ai/AISettings.spec.js b/packages/builder/src/pages/builder/portal/settings/ai/AISettings.spec.js index e5bf15d947..4b3a8404c8 100644 --- a/packages/builder/src/pages/builder/portal/settings/ai/AISettings.spec.js +++ b/packages/builder/src/pages/builder/portal/settings/ai/AISettings.spec.js @@ -85,6 +85,7 @@ describe("AISettings", () => { }) it("should display the 'Enable BB AI' button", async () => { + API.getConfig.mockResolvedValueOnce({ config: {} }) setupDOM() await waitFor(() => { const enableButton = instance.getByText("Enable BB AI") diff --git a/packages/builder/src/pages/builder/portal/settings/ai/index.svelte b/packages/builder/src/pages/builder/portal/settings/ai/index.svelte index cc881bb101..efa2642c43 100644 --- a/packages/builder/src/pages/builder/portal/settings/ai/index.svelte +++ b/packages/builder/src/pages/builder/portal/settings/ai/index.svelte @@ -35,7 +35,6 @@ }, }) - let mounted = false let aiConfig: AIConfig let configModal: { show: () => void; hide: () => void } let portalModal: { show: () => void; hide: () => void } @@ -154,14 +153,13 @@ aiConfig = (await API.getConfig(ConfigType.AI)) as AIConfig const licenseKeyResponse = await API.getLicenseKey() hasLicenseKey = licenseKeyResponse?.licenseKey - mounted = true } catch { notifications.error("Error fetching AI settings") } }) -{#if mounted} +{#if aiConfig}
From a430ae024a3dbec9f616846d86bdd4f5555324db Mon Sep 17 00:00:00 2001 From: Peter Clement Date: Tue, 6 May 2025 12:58:30 +0100 Subject: [PATCH 6/8] disable hover state --- packages/builder/src/components/common/ai/AIInput.svelte | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/builder/src/components/common/ai/AIInput.svelte b/packages/builder/src/components/common/ai/AIInput.svelte index 51f758fa55..fc28aa20c9 100644 --- a/packages/builder/src/components/common/ai/AIInput.svelte +++ b/packages/builder/src/components/common/ai/AIInput.svelte @@ -92,6 +92,7 @@ class="ai-icon" class:loading={promptLoading} class:disabled={expanded && disabled} + class:no-toggle={expandedOnly} on:click={e => { if (!expandedOnly) { e.stopPropagation() @@ -292,6 +293,10 @@ z-index: 2; } + .ai-icon.no-toggle { + cursor: default; + } + .ai-gen-text { white-space: nowrap; overflow: hidden; From 0964e0229900803eb5ad17f7b72b670ea3489d7d Mon Sep 17 00:00:00 2001 From: Peter Clement Date: Tue, 6 May 2025 13:05:47 +0100 Subject: [PATCH 7/8] make expandedOnly prop clearer --- .../builder/src/components/common/CodeEditor/AIGen.svelte | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/builder/src/components/common/CodeEditor/AIGen.svelte b/packages/builder/src/components/common/CodeEditor/AIGen.svelte index 93b63d7cb3..84edc6cbdf 100644 --- a/packages/builder/src/components/common/CodeEditor/AIGen.svelte +++ b/packages/builder/src/components/common/CodeEditor/AIGen.svelte @@ -26,11 +26,11 @@ const thresholdExpansionWidth = 350 - $: expandedOnly = + $: shouldAlwaysBeExpanded = expandedOnly || (parentWidth !== null && parentWidth > thresholdExpansionWidth) - $: expanded = expandedOnly || expanded + $: expanded = shouldAlwaysBeExpanded || expanded async function generateJs(prompt: string) { promptText = "" @@ -108,7 +108,7 @@ bind:expanded bind:value={inputValue} readonly={!!suggestedCode} - {expandedOnly} + expandedOnly={shouldAlwaysBeExpanded} />
From 0995d542f25d3b1652f2fb554c881c78971ac9de Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Tue, 6 May 2025 12:48:24 +0000 Subject: [PATCH 8/8] Bump version to 3.10.0 --- lerna.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lerna.json b/lerna.json index 87f0731cda..b957585f7b 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "$schema": "node_modules/lerna/schemas/lerna-schema.json", - "version": "3.9.5", + "version": "3.10.0", "npmClient": "yarn", "concurrency": 20, "command": {