diff --git a/src/lib/store.ts b/src/lib/store.ts index 1473d93b2..094dd756a 100644 --- a/src/lib/store.ts +++ b/src/lib/store.ts @@ -1,4 +1,4 @@ -import { writable, type Writable } from 'svelte/store'; +import { writable, type Writable, type Readable, readable } from 'svelte/store'; export const gitTokens: Writable<{ githubToken: string | null; gitlabToken: string | null }> = writable({ @@ -6,3 +6,8 @@ export const gitTokens: Writable<{ githubToken: string | null; gitlabToken: stri gitlabToken: null }); export const disabledButton: Writable = writable(false); + +export const features: Readable<{ latestVersion: string; beta: boolean }> = readable({ + beta: window.localStorage.getItem('beta') === 'true', + latestVersion: window.localStorage.getItem('latestVersion') +}); diff --git a/src/routes/__layout.svelte b/src/routes/__layout.svelte index c5c5daddf..5952073e0 100644 --- a/src/routes/__layout.svelte +++ b/src/routes/__layout.svelte @@ -41,7 +41,8 @@ import { errorNotification } from '$lib/form'; import { asyncSleep } from '$lib/components/common'; import { del, get, post } from '$lib/api'; - import { browser, dev } from '$app/env'; + import { dev } from '$app/env'; + import { features } from '$lib/store'; let isUpdateAvailable = false; let updateStatus = { @@ -52,7 +53,7 @@ let latestVersion = 'latest'; onMount(async () => { if ($session.userId) { - const overrideVersion = browser && window.localStorage.getItem('latestVersion'); + const overrideVersion = $features.latestVersion; try { await get(`/login.json`); } catch ({ error }) { diff --git a/src/routes/settings/index.svelte b/src/routes/settings/index.svelte index 8bfefbed3..6a9b6ba5a 100644 --- a/src/routes/settings/index.svelte +++ b/src/routes/settings/index.svelte @@ -28,8 +28,6 @@ import { session } from '$app/stores'; export let settings; - import Cookies from 'js-cookie'; - import langs from '$lib/lang.json'; import Setting from '$lib/components/Setting.svelte'; import Explainer from '$lib/components/Explainer.svelte'; import { errorNotification } from '$lib/form'; @@ -39,6 +37,7 @@ import { getDomain } from '$lib/components/common'; import { toast } from '@zerodevx/svelte-toast'; import { t } from '$lib/translations'; + import { features } from '$lib/store'; let isRegistrationEnabled = settings.isRegistrationEnabled; let dualCerts = settings.dualCerts; @@ -211,7 +210,7 @@ on:click={() => changeSettings('isRegistrationEnabled')} /> - {#if browser && (window.location.hostname === 'staging.coolify.io' || window.location.hostname === 'localhost')} + {#if browser && $features.beta}