diff --git a/desktop/src/renderer/src/lib/components/update/UpdatesPanel.svelte b/desktop/src/renderer/src/lib/components/update/UpdatesPanel.svelte index 3452ffee5..b7afef031 100644 --- a/desktop/src/renderer/src/lib/components/update/UpdatesPanel.svelte +++ b/desktop/src/renderer/src/lib/components/update/UpdatesPanel.svelte @@ -99,11 +99,10 @@ onMount(async () => { }) -
- -
+
+
-
+
{#if s.state === "checking"} @@ -131,20 +130,9 @@ onMount(async () => {
{:else if s.state === "available"}

Devsy {s.availableVersion} is available

-
-
- Installed: - v{installedVersion || "unknown"} -
-
- Available: - v{s.availableVersion} -
-
- Channel: - {channelLabel(releaseChannel)} -
-
+

+ Installed v{installedVersion || "unknown"} · {channelLabel(releaseChannel)} channel +

{:else if s.state === "downloading"}

Downloading Devsy {s.availableVersion}

@@ -206,7 +194,7 @@ onMount(async () => { {/if}
-
+
{#if s.state === "available"} {:else if s.state === "downloaded"} @@ -241,12 +229,8 @@ onMount(async () => { -
-
- -

Choose how early you receive new versions

-
+
{#each CHANNELS as c (c.value)}
-

{c.cadence}

- {#if c.unstable} -

{c.description}

- {:else} -

{c.description}

- {/if} +

{c.cadence}

{/each}
@@ -277,10 +256,9 @@ onMount(async () => { -
-
+

Download updates automatically

@@ -291,19 +269,9 @@ onMount(async () => {

- - - -
-
-

Devsy

- {#if appVersion} -

v{appVersion}

- {:else} -

Version unavailable

- {/if} -
- {channelLabel(releaseChannel)} channel +
+ Devsy {appVersion ? `v${appVersion}` : "version unavailable"} + {channelLabel(releaseChannel)} channel
diff --git a/desktop/src/renderer/src/lib/components/update/UpdatesPanel.test.ts b/desktop/src/renderer/src/lib/components/update/UpdatesPanel.test.ts index 8141e8059..23b186ea2 100644 --- a/desktop/src/renderer/src/lib/components/update/UpdatesPanel.test.ts +++ b/desktop/src/renderer/src/lib/components/update/UpdatesPanel.test.ts @@ -158,8 +158,8 @@ describe("UpdatesPanel status display", () => { await tick() expect(document.body.textContent).toMatch(/devsy 1\.18\.0 is available/i) - expect(document.body.textContent).toMatch(/installed:\s*v1\.17\.0/i) - expect(document.body.textContent).toMatch(/available:\s*v1\.18\.0/i) + expect(document.body.textContent).toMatch(/installed v1\.17\.0/i) + expect(document.body.textContent).toMatch(/devsy 1\.18\.0 is available/i) const btn = Array.from(document.querySelectorAll("button")).find((b) => /download update/i.test(b.textContent ?? ""), ) diff --git a/desktop/src/renderer/src/pages/SettingsPage.svelte b/desktop/src/renderer/src/pages/SettingsPage.svelte index eca3cbec7..ca7b9b8a5 100644 --- a/desktop/src/renderer/src/pages/SettingsPage.svelte +++ b/desktop/src/renderer/src/pages/SettingsPage.svelte @@ -6,13 +6,10 @@ import { Label } from "$lib/components/ui/label/index.js" import { Separator } from "$lib/components/ui/separator/index.js" import * as Command from "$lib/components/ui/command/index.js" import * as Popover from "$lib/components/ui/popover/index.js" -import * as Tabs from "$lib/components/ui/tabs/index.js" import { Switch } from "$lib/components/ui/switch/index.js" import { theme, applyTheme, - colorScheme, - setColorScheme, uiScale, applyUIScale, defaultIde, @@ -25,7 +22,6 @@ import { } from "$lib/stores/settings.js" import type { Theme, - ColorScheme, UIScale, LocalOptions, OnBuildFailure, @@ -33,8 +29,6 @@ import type { import * as Select from "$lib/components/ui/select/index.js" import UpdatesPanel from "$lib/components/update/UpdatesPanel.svelte" import { Skeleton } from "$lib/components/ui/skeleton/index.js" -import { toasts } from "$lib/stores/toasts.js" -import { extractErrorMessage } from "$lib/utils/error.js" import { trackEngagement } from "$lib/analytics.js" const THEMES: { value: Theme; label: string }[] = [ @@ -48,12 +42,6 @@ function setTheme(value: Theme) { applyTheme(value) } -const COLOR_SCHEMES: { value: ColorScheme; label: string; swatch: string }[] = [ - { value: "default", label: "White", swatch: "bg-foreground" }, - { value: "emerald", label: "Emerald", swatch: "bg-emerald-600" }, - { value: "purple", label: "Purple", swatch: "bg-purple-600" }, -] - const UI_SCALES: { value: UIScale; label: string }[] = [ { value: "xs", label: "Extra Small" }, { value: "sm", label: "Small" }, @@ -95,7 +83,6 @@ const IDE_OPTIONS = [ { value: "rstudio", label: "RStudio Server" }, ] -let activeTab = $state("general") let loading = $state(true) let saving = $state(false) let ideComboOpen = $state(false) @@ -152,30 +139,29 @@ function toggleLocal(key: keyof LocalOptions) { } -
+

Settings

- - - General - Appearance - Updates - Experimental - - - +
+ + +
+
+

General

{#if loading}
- -
+
- -
@@ -183,11 +169,7 @@ function toggleLocal(key: keyof LocalOptions) {
- - - -
@@ -199,7 +181,7 @@ function toggleLocal(key: keyof LocalOptions) {
{:else}
-
+

Run all commands with --debug flag

@@ -207,7 +189,7 @@ function toggleLocal(key: keyof LocalOptions) { toggleLocal("debugFlag")} disabled={loading || saving} />
-
+

What to do when a dev container build fails

@@ -222,7 +204,7 @@ function toggleLocal(key: keyof LocalOptions) { } }} > - + {ON_BUILD_FAILURE_OPTIONS.find((o) => o.value === local.onBuildFailure)?.label ?? "Prompt with recovery options"} @@ -297,13 +279,14 @@ function toggleLocal(key: keyof LocalOptions) {
{/if} - +
- -
+
+

Appearance

+

Theme

-
+
{#each THEMES as t (t.value)} - {/each} -
-
- - - {/if}

UI Scale

Adjust the overall size of text and interface elements

-
+
{#each UI_SCALES as s (s.value)}
- +
- - -
- -
-
+
+

Updates

+
+ +
+
- -
+
+

Advanced

+

Experimental features may be unstable. Use at your own risk.

-
+

Check for multiple devcontainers when creating workspaces. May take longer for larger repos.

@@ -404,7 +368,8 @@ function toggleLocal(key: keyof LocalOptions) { disabled={loading || saving} />
-
- - +
+
+
+