diff --git a/packages/desktop/app/javascripts/Main/HomeServer/HomeServerManager.ts b/packages/desktop/app/javascripts/Main/HomeServer/HomeServerManager.ts index 8d5d26b71..baa047213 100644 --- a/packages/desktop/app/javascripts/Main/HomeServer/HomeServerManager.ts +++ b/packages/desktop/app/javascripts/Main/HomeServer/HomeServerManager.ts @@ -4,12 +4,13 @@ import { HomeServerManagerInterface, HomeServerEnvironmentConfiguration, } from '@web/Application/Device/DesktopSnjsExports' -import { HomeServerInterface } from '@standardnotes/home-server' +import { HomeServer, HomeServerInterface } from '@standardnotes/home-server' import { WebContents } from 'electron' import { MessageToWebApp } from '../../Shared/IpcMessages' import { FilesManagerInterface } from '../File/FilesManagerInterface' import { HomeServerConfigurationFile } from './HomeServerConfigurationFile' +import { isWindows } from '../Types/Platforms' const os = require('os') @@ -126,6 +127,8 @@ export class HomeServerManager implements HomeServerManagerInterface { } async startHomeServer(): Promise { + this.doNotInstantiateHomeServerOnWindowsUntilItIsSupported() + if (!this.homeServer) { return } @@ -261,4 +264,10 @@ export class HomeServerManager implements HomeServerManagerInterface { return configuration } + + private doNotInstantiateHomeServerOnWindowsUntilItIsSupported(): void { + if (!isWindows() && !this.homeServer) { + this.homeServer = new HomeServer() + } + } } diff --git a/packages/services/src/Domain/InternalFeatures/InternalFeature.ts b/packages/services/src/Domain/InternalFeatures/InternalFeature.ts index 817c91961..1dfa14b22 100644 --- a/packages/services/src/Domain/InternalFeatures/InternalFeature.ts +++ b/packages/services/src/Domain/InternalFeatures/InternalFeature.ts @@ -1,4 +1,3 @@ export enum InternalFeature { Vaults = 'vaults', - HomeServer = 'home-server', } diff --git a/packages/web/src/javascripts/Components/Preferences/Panes/HomeServer/HomeServer.tsx b/packages/web/src/javascripts/Components/Preferences/Panes/HomeServer/HomeServer.tsx index bbae01ff2..e2a899dcf 100644 --- a/packages/web/src/javascripts/Components/Preferences/Panes/HomeServer/HomeServer.tsx +++ b/packages/web/src/javascripts/Components/Preferences/Panes/HomeServer/HomeServer.tsx @@ -1,10 +1,38 @@ -import { Subtitle, Text, Title } from '@/Components/Preferences/PreferencesComponents/Content' +import { isWindowsPlatform } from '@standardnotes/ui-services' + +import { useApplication } from '@/Components/ApplicationProvider' +import { Pill, Subtitle, Text, Title } from '@/Components/Preferences/PreferencesComponents/Content' + import PreferencesPane from '../../PreferencesComponents/PreferencesPane' import PreferencesGroup from '../../PreferencesComponents/PreferencesGroup' import PreferencesSegment from '../../PreferencesComponents/PreferencesSegment' import HomeServerSettings from './HomeServerSettings' const HomeServer = () => { + const application = useApplication() + + if (isWindowsPlatform(application.platform)) { + return ( + + + +
+
+ Home Server + Labs +
+
+
+
+ Windows support for home server is coming soon. +
+
+
+
+
+ ) + } + return ( diff --git a/packages/web/src/javascripts/Components/Preferences/PreferencesMenu.ts b/packages/web/src/javascripts/Components/Preferences/PreferencesMenu.ts index f54e1f67c..67cfa14fe 100644 --- a/packages/web/src/javascripts/Components/Preferences/PreferencesMenu.ts +++ b/packages/web/src/javascripts/Components/Preferences/PreferencesMenu.ts @@ -5,7 +5,7 @@ import { PackageProvider } from './Panes/General/Advanced/Packages/Provider/Pack import { securityPrefsHasBubble } from './Panes/Security/securityPrefsHasBubble' import { PreferenceId } from '@standardnotes/ui-services' import { isDesktopApplication } from '@/Utils' -import { featureTrunkHomeServerEnabled, featureTrunkVaultsEnabled } from '@/FeatureTrunk' +import { featureTrunkVaultsEnabled } from '@/FeatureTrunk' interface PreferencesMenuItem { readonly id: PreferenceId @@ -47,7 +47,9 @@ const READY_PREFERENCES_MENU_ITEMS: PreferencesMenuItem[] = [ { id: 'help-feedback', label: 'Help & feedback', icon: 'help', order: 11 }, ] -const DESKTOP_PREFERENCES_MENU_ITEMS: PreferencesMenuItem[] = [] +const DESKTOP_PREFERENCES_MENU_ITEMS: PreferencesMenuItem[] = [ + { id: 'home-server', label: 'Home Server', icon: 'server', order: 5 }, +] export class PreferencesMenu { private _selectedPane: PreferenceId = 'account' @@ -60,10 +62,6 @@ export class PreferencesMenu { READY_PREFERENCES_MENU_ITEMS.splice(3, 0, { id: 'vaults', label: 'Vaults', icon: 'safe-square', order: 5 }) } - if (featureTrunkHomeServerEnabled()) { - DESKTOP_PREFERENCES_MENU_ITEMS.push({ id: 'home-server', label: 'Home Server', icon: 'server', order: 5 }) - } - let menuItems = this._enableUnfinishedFeatures ? PREFERENCES_MENU_ITEMS : READY_PREFERENCES_MENU_ITEMS if (isDesktopApplication()) { @@ -72,8 +70,6 @@ export class PreferencesMenu { this._menu = menuItems.sort((a, b) => a.order - b.order) - this._menu = this._enableUnfinishedFeatures ? PREFERENCES_MENU_ITEMS : READY_PREFERENCES_MENU_ITEMS - this.loadLatestVersions() makeAutoObservable< diff --git a/packages/web/src/javascripts/FeatureTrunk.ts b/packages/web/src/javascripts/FeatureTrunk.ts index 515d29b86..b8e6128c1 100644 --- a/packages/web/src/javascripts/FeatureTrunk.ts +++ b/packages/web/src/javascripts/FeatureTrunk.ts @@ -11,7 +11,3 @@ export function featureTrunkEnabled(trunk: FeatureTrunkName): boolean { export function featureTrunkVaultsEnabled(): boolean { return InternalFeatureService.get().isFeatureEnabled(InternalFeature.Vaults) } - -export function featureTrunkHomeServerEnabled(): boolean { - return InternalFeatureService.get().isFeatureEnabled(InternalFeature.HomeServer) -}