From c6dc6a56b76ac7c00b0e5767e643ad5d2279d86c Mon Sep 17 00:00:00 2001 From: Mateusz Rajski Date: Mon, 24 Feb 2025 17:38:35 +0100 Subject: [PATCH] Define separate implementation for desktop app --- src/libs/actions/Welcome/index.ts | 25 +--------------- .../index.desktop.ts | 6 ++++ .../index.ts | 29 +++++++++++++++++++ .../types.ts | 5 ++++ .../BaseOnboardingEmployees.tsx | 6 +--- 5 files changed, 42 insertions(+), 29 deletions(-) create mode 100644 src/libs/actions/Welcome/switchToOldDotOnNonMicroCompanySize/index.desktop.ts create mode 100644 src/libs/actions/Welcome/switchToOldDotOnNonMicroCompanySize/index.ts create mode 100644 src/libs/actions/Welcome/switchToOldDotOnNonMicroCompanySize/types.ts diff --git a/src/libs/actions/Welcome/index.ts b/src/libs/actions/Welcome/index.ts index 572bbef08188..f1faebe27e75 100644 --- a/src/libs/actions/Welcome/index.ts +++ b/src/libs/actions/Welcome/index.ts @@ -5,7 +5,6 @@ import * as API from '@libs/API'; import {SIDE_EFFECT_REQUEST_COMMANDS, WRITE_COMMANDS} from '@libs/API/types'; import DateUtils from '@libs/DateUtils'; import Log from '@libs/Log'; -import CONST from '@src/CONST'; import type {OnboardingCompanySize} from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; import type {OnboardingPurpose} from '@src/types/onyx'; @@ -13,6 +12,7 @@ import type Onboarding from '@src/types/onyx/Onboarding'; import type TryNewDot from '@src/types/onyx/TryNewDot'; import {isEmptyObject} from '@src/types/utils/EmptyObject'; import {clearInitialPath} from './OnboardingFlow'; +import switchToOldDotOnNonMicroCompanySize from './switchToOldDotOnNonMicroCompanySize'; type OnboardingData = Onboarding | undefined; @@ -150,29 +150,6 @@ function completeHybridAppOnboarding() { }); } -/* - * Decides whether we should set dismissed key to `true` or `false` based on company size - */ -function switchToOldDotOnNonMicroCompanySize(onboardingCompanySize: OnboardingCompanySize) { - if (onboardingCompanySize === CONST.ONBOARDING_COMPANY_SIZE.MICRO) { - return; - } - - const optimisticData: OnyxUpdate[] = [ - { - onyxMethod: Onyx.METHOD.MERGE, - key: ONYXKEYS.NVP_TRYNEWDOT, - value: { - classicRedirect: { - dismissed: true, - }, - }, - }, - ]; - - API.write(WRITE_COMMANDS.SWITCH_TO_OLD_DOT_ON_COMPANY_SIZE, {onboardingCompanySize}, {optimisticData}); -} - Onyx.connect({ key: ONYXKEYS.NVP_ONBOARDING, callback: (value) => { diff --git a/src/libs/actions/Welcome/switchToOldDotOnNonMicroCompanySize/index.desktop.ts b/src/libs/actions/Welcome/switchToOldDotOnNonMicroCompanySize/index.desktop.ts new file mode 100644 index 000000000000..a2bdc5b00c38 --- /dev/null +++ b/src/libs/actions/Welcome/switchToOldDotOnNonMicroCompanySize/index.desktop.ts @@ -0,0 +1,6 @@ +import type SwitchToOldDotOnNonMicroCompanySize from './types'; + +// We don't want to use this API on desktop, so we just noop here +const switchToOldDotOnNonMicroCompanySize: SwitchToOldDotOnNonMicroCompanySize = () => {}; + +export default switchToOldDotOnNonMicroCompanySize; diff --git a/src/libs/actions/Welcome/switchToOldDotOnNonMicroCompanySize/index.ts b/src/libs/actions/Welcome/switchToOldDotOnNonMicroCompanySize/index.ts new file mode 100644 index 000000000000..3c6a943b502b --- /dev/null +++ b/src/libs/actions/Welcome/switchToOldDotOnNonMicroCompanySize/index.ts @@ -0,0 +1,29 @@ +import type {OnyxUpdate} from 'react-native-onyx'; +import Onyx from 'react-native-onyx'; +import * as API from '@libs/API'; +import {WRITE_COMMANDS} from '@libs/API/types'; +import CONST from '@src/CONST'; +import ONYXKEYS from '@src/ONYXKEYS'; +import type SwitchToOldDotOnNonMicroCompanySize from './types'; + +const switchToOldDotOnNonMicroCompanySize: SwitchToOldDotOnNonMicroCompanySize = (onboardingCompanySize) => { + if (onboardingCompanySize === CONST.ONBOARDING_COMPANY_SIZE.MICRO) { + return; + } + + const optimisticData: OnyxUpdate[] = [ + { + onyxMethod: Onyx.METHOD.MERGE, + key: ONYXKEYS.NVP_TRYNEWDOT, + value: { + classicRedirect: { + dismissed: true, + }, + }, + }, + ]; + + API.write(WRITE_COMMANDS.SWITCH_TO_OLD_DOT_ON_COMPANY_SIZE, {onboardingCompanySize}, {optimisticData}); +}; + +export default switchToOldDotOnNonMicroCompanySize; diff --git a/src/libs/actions/Welcome/switchToOldDotOnNonMicroCompanySize/types.ts b/src/libs/actions/Welcome/switchToOldDotOnNonMicroCompanySize/types.ts new file mode 100644 index 000000000000..aa888445eaaf --- /dev/null +++ b/src/libs/actions/Welcome/switchToOldDotOnNonMicroCompanySize/types.ts @@ -0,0 +1,5 @@ +import type {OnboardingCompanySize} from '@src/CONST'; + +type SwitchToOldDotOnNonMicroCompanySize = (onboardingCompanySize: OnboardingCompanySize) => void; + +export default SwitchToOldDotOnNonMicroCompanySize; diff --git a/src/pages/OnboardingEmployees/BaseOnboardingEmployees.tsx b/src/pages/OnboardingEmployees/BaseOnboardingEmployees.tsx index f37192551e40..6587909231f6 100644 --- a/src/pages/OnboardingEmployees/BaseOnboardingEmployees.tsx +++ b/src/pages/OnboardingEmployees/BaseOnboardingEmployees.tsx @@ -74,11 +74,7 @@ function BaseOnboardingEmployees({shouldUseNativeStyles, route}: BaseOnboardingE return; } setOnboardingCompanySize(selectedCompanySize); - - // Redirect is disabled on desktop - if (getPlatform() !== CONST.PLATFORM.DESKTOP) { - switchToOldDotOnNonMicroCompanySize(selectedCompanySize); - } + switchToOldDotOnNonMicroCompanySize(selectedCompanySize); const shouldCreateWorkspace = !onboardingPolicyID && !paidGroupPolicy;