From 8f8407c16a2500ae5a7416534ccd6db81c722970 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20Mondrag=C3=B3n?= <79058848+julmondragon@users.noreply.github.com> Date: Tue, 23 Aug 2022 10:19:41 -0500 Subject: [PATCH] MM-46445_Add a way to bypass Desktop App onboarding to `buildConfig` (#2232) --- .circleci/config.yml | 7 +++++++ src/common/config/buildConfig.ts | 1 + src/common/config/defaultPreferences.ts | 1 + src/common/config/index.ts | 4 ++++ src/main/Validator.test.js | 1 + src/main/Validator.ts | 1 + src/main/app/intercom.ts | 2 +- src/types/config.ts | 2 ++ 8 files changed, 18 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3be263e7..20345721 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -108,6 +108,13 @@ commands: type: string default: "./linux/" steps: + - when: + condition: << pipeline.parameters.run_nightly >> + steps: + - run: + name: Patch buildConfig file for run nightly + command: | + sed -i "" "s/skipOnboardingScreens:[[:blank:]]*false/skipOnboardingScreens: true/" ./src/common/config/buildConfig.ts; - run: name: npn run command: npm run package:<< parameters.os >> diff --git a/src/common/config/buildConfig.ts b/src/common/config/buildConfig.ts index e6fc3204..6a9feec3 100644 --- a/src/common/config/buildConfig.ts +++ b/src/common/config/buildConfig.ts @@ -37,6 +37,7 @@ const buildConfig: BuildConfig = { 'mailto', 'tel', ], + skipOnboardingScreens: false, }; export default buildConfig; diff --git a/src/common/config/defaultPreferences.ts b/src/common/config/defaultPreferences.ts index c8bf6cbb..336adce8 100644 --- a/src/common/config/defaultPreferences.ts +++ b/src/common/config/defaultPreferences.ts @@ -43,6 +43,7 @@ const defaultPreferences: ConfigV3 = { lastActiveTeam: 0, downloadLocation: getDefaultDownloadLocation(), startInFullscreen: false, + skipOnboardingScreens: false, }; export default defaultPreferences; diff --git a/src/common/config/index.ts b/src/common/config/index.ts index 80a86188..9e5fe430 100644 --- a/src/common/config/index.ts +++ b/src/common/config/index.ts @@ -332,6 +332,10 @@ export class Config extends EventEmitter { return this.combinedData?.appLanguage; } + get skipOnboardingScreens() { + return this.combinedData?.skipOnboardingScreens ?? defaultPreferences.skipOnboardingScreens; + } + // initialization/processing methods /** diff --git a/src/main/Validator.test.js b/src/main/Validator.test.js index d0ab3972..ecf12113 100644 --- a/src/main/Validator.test.js +++ b/src/main/Validator.test.js @@ -150,6 +150,7 @@ describe('main/Validator', () => { ], trayIconTheme: 'use_system', useSpellChecker: true, + skipOnboardingScreens: false, version: 3, }; diff --git a/src/main/Validator.ts b/src/main/Validator.ts index be411fb7..ccaf5968 100644 --- a/src/main/Validator.ts +++ b/src/main/Validator.ts @@ -132,6 +132,7 @@ const configDataSchemaV3 = Joi.object({ alwaysClose: Joi.boolean(), logLevel: Joi.string().default('info'), appLanguage: Joi.string().allow(''), + skipOnboardingScreens: Joi.boolean().default(false), }); // eg. data['community.mattermost.com'] = { data: 'certificate data', issuerName: 'COMODO RSA Domain Validation Secure Server CA'}; diff --git a/src/main/app/intercom.ts b/src/main/app/intercom.ts index 3648f996..42d53f24 100644 --- a/src/main/app/intercom.ts +++ b/src/main/app/intercom.ts @@ -86,7 +86,7 @@ export function handleOpenTab(event: IpcMainEvent, serverName: string, tabName: } export function handleMainWindowIsShown() { - const showWelcomeScreen = !Config.teams.length; + const showWelcomeScreen = !Config.skipOnboardingScreens && !Config.teams.length; const mainWindow = WindowManager.getMainWindow(); if (mainWindow) { diff --git a/src/types/config.ts b/src/types/config.ts index 2fe4daa5..78cdeaef 100644 --- a/src/types/config.ts +++ b/src/types/config.ts @@ -46,6 +46,7 @@ export type ConfigV3 = { alwaysClose?: boolean; logLevel?: string; appLanguage?: string; + skipOnboardingScreens: boolean; } export type ConfigV2 = { @@ -106,6 +107,7 @@ export type BuildConfig = { enableAutoUpdater: boolean; managedResources: string[]; allowedProtocols: string[]; + skipOnboardingScreens: boolean; } export type RegistryConfig = {