diff --git a/__snapshots__/features/remoteBanner/pages/ForceUpdate.native.test.tsx.native-snap b/__snapshots__/features/remoteBanner/pages/ForceUpdate.native.test.tsx.native-snap
new file mode 100644
index 00000000000..e5f0c34408a
--- /dev/null
+++ b/__snapshots__/features/remoteBanner/pages/ForceUpdate.native.test.tsx.native-snap
@@ -0,0 +1,415 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[` should match snapshot 1`] = `
+
+
+
+
+ undefined-SVG-Mock
+
+
+
+
+
+
+
+
+
+ undefined-SVG-Mock
+
+
+
+
+ Mise à jour requise !
+
+
+
+ Le pass Culture ne semble plus à jour sur ton téléphone !
+ Pour des questions de performance et de sécurité merci de télécharger la dernière version disponible.
+
+
+
+
+
+
+
+ Télécharger la dernière version
+
+
+
+
+
+
+
+
+
+ button-icon-left-SVG-Mock
+
+
+
+
+
+ Utiliser la version web
+
+
+
+
+
+
+
+`;
diff --git a/__snapshots__/features/remoteBanner/pages/ForceUpdateWithResetErrorBoundary.native.test.tsx.native-snap b/__snapshots__/features/remoteBanner/pages/ForceUpdateWithResetErrorBoundary.native.test.tsx.native-snap
new file mode 100644
index 00000000000..4086251b8ca
--- /dev/null
+++ b/__snapshots__/features/remoteBanner/pages/ForceUpdateWithResetErrorBoundary.native.test.tsx.native-snap
@@ -0,0 +1,415 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[` should match snapshot 1`] = `
+
+
+
+
+ undefined-SVG-Mock
+
+
+
+
+
+
+
+
+
+ undefined-SVG-Mock
+
+
+
+
+ Mise à jour requise !
+
+
+
+ Le pass Culture ne semble plus à jour sur ton téléphone !
+ Pour des questions de performance et de sécurité merci de télécharger la dernière version disponible.
+
+
+
+
+
+
+
+ Télécharger la dernière version
+
+
+
+
+
+
+
+
+
+ button-icon-left-SVG-Mock
+
+
+
+
+
+ Utiliser la version web
+
+
+
+
+
+
+
+`;
diff --git a/src/cheatcodes/pages/features/forceUpdate/cheatcodesNavigationForceUpdate.tsx b/src/cheatcodes/pages/features/forceUpdate/cheatcodesNavigationForceUpdate.tsx
index df0d3ef8af3..9397c09ea64 100644
--- a/src/cheatcodes/pages/features/forceUpdate/cheatcodesNavigationForceUpdate.tsx
+++ b/src/cheatcodes/pages/features/forceUpdate/cheatcodesNavigationForceUpdate.tsx
@@ -4,7 +4,7 @@ import { CheatcodesSubscreensButtonList } from 'cheatcodes/components/Cheatcodes
import { CheatcodesTemplateScreen } from 'cheatcodes/components/CheatcodesTemplateScreen'
import { LinkToScreen } from 'cheatcodes/components/LinkToScreen'
import { CheatcodesButtonsWithSubscreensProps } from 'cheatcodes/types'
-import { ForceUpdateWithResetErrorBoundary } from 'features/forceUpdate/pages/ForceUpdateWithResetErrorBoundary'
+import { ForceUpdateWithResetErrorBoundary } from 'features/remoteBanner/pages/ForceUpdateWithResetErrorBoundary'
import { useLogTypeFromRemoteConfig } from 'libs/hooks/useLogTypeFromRemoteConfig'
import { ScreenError } from 'libs/monitoring'
diff --git a/src/features/auth/pages/signup/VerifyEligiblity/VerifyEligibility.tsx b/src/features/auth/pages/signup/VerifyEligiblity/VerifyEligibility.tsx
index 2a1547d1040..bab339cebec 100644
--- a/src/features/auth/pages/signup/VerifyEligiblity/VerifyEligibility.tsx
+++ b/src/features/auth/pages/signup/VerifyEligiblity/VerifyEligibility.tsx
@@ -2,9 +2,9 @@ import React, { FunctionComponent } from 'react'
import { View } from 'react-native'
import styled from 'styled-components/native'
-import { useShowForceUpdateWhenDisableActivation } from 'features/forceUpdate/helpers/useShowForceUpdateWhenDisableActivation'
import { navigateToHomeConfig } from 'features/navigation/helpers/navigateToHome'
import { StepperOrigin } from 'features/navigation/RootNavigator/types'
+import { useShowForceUpdateWhenDisableActivation } from 'features/remoteBanner/helpers/useShowForceUpdateWhenDisableActivation'
import { ButtonPrimary } from 'ui/components/buttons/ButtonPrimary'
import { ButtonTertiaryBlack } from 'ui/components/buttons/ButtonTertiaryBlack'
import { InternalTouchableLink } from 'ui/components/touchableLink/InternalTouchableLink'
diff --git a/src/features/errors/pages/ScreenErrorProvider.tsx b/src/features/errors/pages/ScreenErrorProvider.tsx
index babfd63eda3..0a63c05a5d0 100644
--- a/src/features/errors/pages/ScreenErrorProvider.tsx
+++ b/src/features/errors/pages/ScreenErrorProvider.tsx
@@ -1,9 +1,9 @@
import React from 'react'
-import { useMustUpdateApp } from 'features/forceUpdate/helpers/useMustUpdateApp'
-import { ForceUpdateWithResetErrorBoundary } from 'features/forceUpdate/pages/ForceUpdateWithResetErrorBoundary'
import { useMaintenance } from 'features/maintenance/helpers/useMaintenance/useMaintenance'
import { MaintenanceErrorPage } from 'features/maintenance/pages/MaintenanceErrorPage'
+import { useMustUpdateApp } from 'features/remoteBanner/helpers/useMustUpdateApp'
+import { ForceUpdateWithResetErrorBoundary } from 'features/remoteBanner/pages/ForceUpdateWithResetErrorBoundary'
import { MAINTENANCE } from 'libs/firebase/firestore/types'
import { useLogTypeFromRemoteConfig } from 'libs/hooks/useLogTypeFromRemoteConfig'
import { ScreenError } from 'libs/monitoring/errors'
diff --git a/src/features/forceUpdate/pages/ForceUpdate.tsx b/src/features/forceUpdate/pages/ForceUpdate.tsx
deleted file mode 100644
index 2622ea390c8..00000000000
--- a/src/features/forceUpdate/pages/ForceUpdate.tsx
+++ /dev/null
@@ -1,5 +0,0 @@
-import React from 'react'
-
-import { ForceUpdateInfos } from 'features/forceUpdate/components/ForceUpdateInfos'
-
-export const ForceUpdate = () =>
diff --git a/src/features/home/components/modules/banners/HomeBanner.native.test.tsx b/src/features/home/components/modules/banners/HomeBanner.native.test.tsx
index 982679ece3e..816838b49ed 100644
--- a/src/features/home/components/modules/banners/HomeBanner.native.test.tsx
+++ b/src/features/home/components/modules/banners/HomeBanner.native.test.tsx
@@ -1,10 +1,10 @@
import React from 'react'
import { BannerName, BannerResponse, SubscriptionStepperResponseV2 } from 'api/gen'
-import { useRemoteBanner } from 'features/forceUpdate/helpers/useRemoteBanner'
import { HomeBanner } from 'features/home/components/modules/banners/HomeBanner'
import { subscriptionStepperFixture } from 'features/identityCheck/fixtures/subscriptionStepperFixture'
import * as NavigationHelpers from 'features/navigation/helpers/openUrl'
+import { useRemoteBanner } from 'features/remoteBanner/helpers/useRemoteBanner'
import { setFeatureFlags } from 'libs/firebase/firestore/featureFlags/__tests__/setFeatureFlags'
import { RemoteStoreFeatureFlags } from 'libs/firebase/firestore/types'
import { ILocationContext, useLocation } from 'libs/location'
@@ -31,7 +31,7 @@ const mockDepositAmounts = jest.mocked(useGetDepositAmountsByAge)
jest.mock('@react-native-firebase/firestore')
const openUrl = jest.spyOn(NavigationHelpers, 'openUrl')
-jest.mock('features/forceUpdate/helpers/useRemoteBanner')
+jest.mock('features/remoteBanner/helpers/useRemoteBanner')
const mockUseRemoteBanner = useRemoteBanner as jest.Mock
const bannerData = {
title: 'title 1',
diff --git a/src/features/home/components/modules/banners/HomeBanner.tsx b/src/features/home/components/modules/banners/HomeBanner.tsx
index 9ded335c014..b234b5b07d5 100644
--- a/src/features/home/components/modules/banners/HomeBanner.tsx
+++ b/src/features/home/components/modules/banners/HomeBanner.tsx
@@ -3,11 +3,11 @@ import React, { ComponentType, FunctionComponent, useCallback, useMemo } from 'r
import styled from 'styled-components/native'
import { BannerName } from 'api/gen'
-import { ForceUpdateBanner } from 'features/forceUpdate/components/ForceUpdateBanner'
import { useActivationBanner } from 'features/home/api/useActivationBanner'
import { ActivationBanner } from 'features/home/components/banners/ActivationBanner'
import { SignupBanner } from 'features/home/components/banners/SignupBanner'
import { StepperOrigin, UseNavigationType } from 'features/navigation/RootNavigator/types'
+import { RemoteBanner } from 'features/remoteBanner/components/RemoteBanner'
import { useFeatureFlag } from 'libs/firebase/firestore/featureFlags/useFeatureFlag'
import { RemoteStoreFeatureFlags } from 'libs/firebase/firestore/types'
import { SystemBanner as GenericSystemBanner } from 'ui/components/ModuleBanner/SystemBanner'
@@ -141,7 +141,7 @@ export const HomeBanner = ({ isLoggedIn }: HomeBannerProps) => {
if (showForceUpdateBanner) {
return (
-
+
)
}
diff --git a/src/features/identityCheck/pages/Stepper.tsx b/src/features/identityCheck/pages/Stepper.tsx
index b586a59aba8..93136c70dd3 100644
--- a/src/features/identityCheck/pages/Stepper.tsx
+++ b/src/features/identityCheck/pages/Stepper.tsx
@@ -5,12 +5,12 @@ import styled, { useTheme } from 'styled-components/native'
import { extractApiErrorMessage } from 'api/apiHelpers'
import { MaintenancePageType, SubscriptionStep } from 'api/gen'
import { useAuthContext } from 'features/auth/context/AuthContext'
-import { useShowForceUpdateWhenDisableActivation } from 'features/forceUpdate/helpers/useShowForceUpdateWhenDisableActivation'
import { QuitIdentityCheckModal } from 'features/identityCheck/components/modals/QuitIdentityCheckModal'
import { useRehydrateProfile } from 'features/identityCheck/pages/helpers/useRehydrateProfile'
import { useSetSubscriptionStepAndMethod } from 'features/identityCheck/pages/helpers/useSetCurrentSubscriptionStep'
import { useStepperInfo } from 'features/identityCheck/pages/helpers/useStepperInfo'
import { UseNavigationType, UseRouteType } from 'features/navigation/RootNavigator/types'
+import { useShowForceUpdateWhenDisableActivation } from 'features/remoteBanner/helpers/useShowForceUpdateWhenDisableActivation'
import { analytics } from 'libs/analytics'
import { hasOngoingCredit } from 'shared/user/useAvailableCredit'
import { ErrorBanner } from 'ui/components/banners/ErrorBanner'
diff --git a/src/features/navigation/RootNavigator/RootNavigator.native.test.tsx b/src/features/navigation/RootNavigator/RootNavigator.native.test.tsx
index 8545b55adfa..62ba1563e48 100644
--- a/src/features/navigation/RootNavigator/RootNavigator.native.test.tsx
+++ b/src/features/navigation/RootNavigator/RootNavigator.native.test.tsx
@@ -1,7 +1,7 @@
import { NavigationContainer } from '@react-navigation/native'
import React from 'react'
-import { useMustUpdateApp } from 'features/forceUpdate/helpers/useMustUpdateApp'
+import { useMustUpdateApp } from 'features/remoteBanner/helpers/useMustUpdateApp'
import { setFeatureFlags } from 'libs/firebase/firestore/featureFlags/__tests__/setFeatureFlags'
import { useSplashScreenContext } from 'libs/splashscreen'
import { storage } from 'libs/storage'
@@ -14,7 +14,7 @@ const mockUseSplashScreenContext = jest.mocked(useSplashScreenContext)
const mockedUseMustUpdateApp = jest.mocked(useMustUpdateApp)
jest.mock('features/navigation/navigationRef')
-jest.mock('features/forceUpdate/helpers/useMustUpdateApp')
+jest.mock('features/remoteBanner/helpers/useMustUpdateApp')
jest.unmock('@react-navigation/native')
const mockUseAuthContext = jest.fn().mockReturnValue({ isLoggedIn: true })
diff --git a/src/features/navigation/RootNavigator/RootNavigator.web.test.tsx b/src/features/navigation/RootNavigator/RootNavigator.web.test.tsx
index ab7fa53e6f6..ce2a5996c07 100644
--- a/src/features/navigation/RootNavigator/RootNavigator.web.test.tsx
+++ b/src/features/navigation/RootNavigator/RootNavigator.web.test.tsx
@@ -20,7 +20,7 @@ const mockUseCurrentRoute = jest.mocked(useCurrentRoute)
jest
.spyOn(CookiesUpToDate, 'useIsCookiesListUpToDate')
.mockReturnValue({ isCookiesListUpToDate: true, cookiesLastUpdate: undefined, isLoading: false })
-jest.mock('features/forceUpdate/helpers/useMustUpdateApp')
+jest.mock('features/remoteBanner/helpers/useMustUpdateApp')
jest.unmock('@react-navigation/native')
jest.mock('features/auth/context/AuthContext')
jest.mock('react-error-boundary', () => ({
diff --git a/src/features/navigation/RootNavigator/routes.ts b/src/features/navigation/RootNavigator/routes.ts
index 99fac835d8b..3f837228676 100644
--- a/src/features/navigation/RootNavigator/routes.ts
+++ b/src/features/navigation/RootNavigator/routes.ts
@@ -25,7 +25,6 @@ import { Chronicles } from 'features/chronicle/pages/Chronicles/Chronicles'
import { withAsyncErrorBoundary } from 'features/errors/hocs/withAsyncErrorBoundary'
import { BannedCountryError } from 'features/errors/pages/BannedCountryError'
import { FavoritesSorts } from 'features/favorites/pages/FavoritesSorts'
-import { ForceUpdate } from 'features/forceUpdate/pages/ForceUpdate'
import { ThematicHome } from 'features/home/pages/ThematicHome'
import { DeeplinksGenerator } from 'features/internal/pages/DeeplinksGenerator'
import { UTMParameters } from 'features/internal/pages/UTMParameters'
@@ -66,6 +65,7 @@ import { PersonalData } from 'features/profile/pages/PersonalData/PersonalData'
import { SuspendAccountConfirmation } from 'features/profile/pages/SuspendAccountConfirmation/SuspendAccountConfirmation'
import { TrackEmailChange } from 'features/profile/pages/TrackEmailChange/TrackEmailChange'
import { ValidateEmailChange } from 'features/profile/pages/ValidateEmailChange/ValidateEmailChange'
+import { ForceUpdate } from 'features/remoteBanner/pages/ForceUpdate'
import { SearchFilter } from 'features/search/pages/SearchFilter/SearchFilter'
import { OnboardingSubscription } from 'features/subscription/page/OnboardingSubscription'
import { ProfileTutorialAgeInformation } from 'features/tutorial/pages/profileTutorial/ProfileTutorialAgeInformation'
diff --git a/src/features/profile/components/Badges/SubscriptionMessageBadge.tsx b/src/features/profile/components/Badges/SubscriptionMessageBadge.tsx
index e96c90f281d..49700a0ee76 100644
--- a/src/features/profile/components/Badges/SubscriptionMessageBadge.tsx
+++ b/src/features/profile/components/Badges/SubscriptionMessageBadge.tsx
@@ -3,11 +3,11 @@ import { openInbox } from 'react-native-email-link'
import { SubscriptionMessage } from 'api/gen'
import { useIsMailAppAvailable } from 'features/auth/helpers/useIsMailAppAvailable'
-import { ForceUpdateBanner } from 'features/forceUpdate/components/ForceUpdateBanner'
import { Subtitle } from 'features/profile/components/Subtitle/Subtitle'
import { formatDateToLastUpdatedAtMessage } from 'features/profile/helpers/formatDateToLastUpdatedAtMessage'
import { matchSubscriptionMessageIconToSvg } from 'features/profile/helpers/matchSubscriptionMessageIconToSvg'
import { shouldOpenInbox as checkShouldOpenInbox } from 'features/profile/helpers/shouldOpenInbox'
+import { RemoteBanner } from 'features/remoteBanner/components/RemoteBanner'
import { InfoBanner } from 'ui/components/banners/InfoBanner'
import { BaseButtonProps } from 'ui/components/buttons/AppButton/types'
import { ButtonQuaternarySecondary } from 'ui/components/buttons/ButtonQuaternarySecondary'
@@ -88,7 +88,7 @@ export const SubscriptionMessageBadge = ({
{disableActivation ? (
-
+
) : null}
diff --git a/src/features/profile/components/Header/HeaderWithGreyContainer/HeaderWithGreyContainer.tsx b/src/features/profile/components/Header/HeaderWithGreyContainer/HeaderWithGreyContainer.tsx
index cae1b599d8b..905bd4fc410 100644
--- a/src/features/profile/components/Header/HeaderWithGreyContainer/HeaderWithGreyContainer.tsx
+++ b/src/features/profile/components/Header/HeaderWithGreyContainer/HeaderWithGreyContainer.tsx
@@ -1,7 +1,7 @@
import React, { FunctionComponent, ReactNode } from 'react'
import styled from 'styled-components/native'
-import { ForceUpdateBanner } from 'features/forceUpdate/components/ForceUpdateBanner'
+import { RemoteBanner } from 'features/remoteBanner/components/RemoteBanner'
import { InfoBanner } from 'ui/components/banners/InfoBanner'
import { PageHeader } from 'ui/components/headers/PageHeader'
import { Info } from 'ui/svg/icons/Info'
@@ -37,7 +37,7 @@ export const HeaderWithGreyContainer: FunctionComponent = ({
)}
{showForceUpdateBanner ? (
-
+
) : null}
diff --git a/src/features/profile/components/Header/NonBeneficiaryHeader/NonBeneficiaryHeader.tsx b/src/features/profile/components/Header/NonBeneficiaryHeader/NonBeneficiaryHeader.tsx
index 8888ef3a85b..dfd4887169e 100644
--- a/src/features/profile/components/Header/NonBeneficiaryHeader/NonBeneficiaryHeader.tsx
+++ b/src/features/profile/components/Header/NonBeneficiaryHeader/NonBeneficiaryHeader.tsx
@@ -3,7 +3,6 @@ import React, { FunctionComponent, memo, PropsWithChildren } from 'react'
import styled from 'styled-components/native'
import { Banner, BannerName } from 'api/gen'
-import { ForceUpdateBanner } from 'features/forceUpdate/components/ForceUpdateBanner'
import { useActivationBanner } from 'features/home/api/useActivationBanner'
import { ActivationBanner } from 'features/home/components/banners/ActivationBanner'
import { useGetStepperInfo } from 'features/identityCheck/api/useGetStepperInfo'
@@ -12,6 +11,7 @@ import { IdentityCheckPendingBadge } from 'features/profile/components/Badges/Id
import { SubscriptionMessageBadge } from 'features/profile/components/Badges/SubscriptionMessageBadge'
import { YoungerBadge } from 'features/profile/components/Badges/YoungerBadge'
import { EligibilityMessage } from 'features/profile/components/Header/NonBeneficiaryHeader/EligibilityMessage'
+import { RemoteBanner } from 'features/remoteBanner/components/RemoteBanner'
import { formatToSlashedFrenchDate } from 'libs/dates'
import { PageHeader } from 'ui/components/headers/PageHeader'
import { SystemBanner as GenericSystemBanner } from 'ui/components/ModuleBanner/SystemBanner'
@@ -163,7 +163,7 @@ function NonBeneficiaryBanner({
return (
-
+
)
}
diff --git a/src/features/forceUpdate/components/ForceUpdateInfos.native.test.tsx b/src/features/remoteBanner/components/ForceUpdateInfos.native.test.tsx
similarity index 95%
rename from src/features/forceUpdate/components/ForceUpdateInfos.native.test.tsx
rename to src/features/remoteBanner/components/ForceUpdateInfos.native.test.tsx
index c55c2469506..f9066b7e600 100644
--- a/src/features/forceUpdate/components/ForceUpdateInfos.native.test.tsx
+++ b/src/features/remoteBanner/components/ForceUpdateInfos.native.test.tsx
@@ -12,7 +12,7 @@ const build = 10010005
jest.spyOn(PackageJson, 'getAppBuildVersion').mockReturnValue(build)
jest.mock('libs/firebase/analytics/analytics')
-jest.mock('features/forceUpdate/helpers/useMinimalBuildNumber')
+jest.mock('features/remoteBanner/helpers/useMinimalBuildNumber')
jest.mock('react-native/Libraries/Animated/createAnimatedComponent', () => {
return function createAnimatedComponent(Component: unknown) {
return Component
diff --git a/src/features/forceUpdate/components/ForceUpdateInfos.tsx b/src/features/remoteBanner/components/ForceUpdateInfos.tsx
similarity index 93%
rename from src/features/forceUpdate/components/ForceUpdateInfos.tsx
rename to src/features/remoteBanner/components/ForceUpdateInfos.tsx
index fb0f662e13b..99dce2d15d2 100644
--- a/src/features/forceUpdate/components/ForceUpdateInfos.tsx
+++ b/src/features/remoteBanner/components/ForceUpdateInfos.tsx
@@ -3,8 +3,8 @@ import { Helmet } from 'react-helmet'
import { Platform } from 'react-native'
import styled from 'styled-components/native'
-import { BUTTON_TEXT_SCREEN, DESCRIPTION, TITLE } from 'features/forceUpdate/constants'
-import { onPressStoreLink } from 'features/forceUpdate/helpers/onPressStoreLink'
+import { BUTTON_TEXT_SCREEN, DESCRIPTION, TITLE } from 'features/remoteBanner/constants'
+import { onPressStoreLink } from 'features/remoteBanner/helpers/onPressStoreLink'
import { WEBAPP_V2_URL } from 'libs/environment'
import { ButtonPrimaryWhite } from 'ui/components/buttons/ButtonPrimaryWhite'
import { ButtonTertiaryWhite } from 'ui/components/buttons/ButtonTertiaryWhite'
diff --git a/src/features/forceUpdate/components/ForceUpdateInfos.web.test.tsx b/src/features/remoteBanner/components/ForceUpdateInfos.web.test.tsx
similarity index 88%
rename from src/features/forceUpdate/components/ForceUpdateInfos.web.test.tsx
rename to src/features/remoteBanner/components/ForceUpdateInfos.web.test.tsx
index f7340ec688b..3fcc718997a 100644
--- a/src/features/forceUpdate/components/ForceUpdateInfos.web.test.tsx
+++ b/src/features/remoteBanner/components/ForceUpdateInfos.web.test.tsx
@@ -6,7 +6,7 @@ import { ForceUpdateInfos } from './ForceUpdateInfos'
jest.mock('libs/firebase/analytics/analytics')
jest.mock('libs/firebase/remoteConfig/remoteConfig.services')
-jest.mock('features/forceUpdate/helpers/useMinimalBuildNumber')
+jest.mock('features/remoteBanner/helpers/useMinimalBuildNumber')
describe('', () => {
it('should not display the web app button', () => {
diff --git a/src/features/forceUpdate/components/ForceUpdateBanner.tsx b/src/features/remoteBanner/components/RemoteBanner.tsx
similarity index 83%
rename from src/features/forceUpdate/components/ForceUpdateBanner.tsx
rename to src/features/remoteBanner/components/RemoteBanner.tsx
index e99e90aac8a..81a0cc9313a 100644
--- a/src/features/forceUpdate/components/ForceUpdateBanner.tsx
+++ b/src/features/remoteBanner/components/RemoteBanner.tsx
@@ -1,17 +1,17 @@
import React from 'react'
import styled from 'styled-components/native'
-import { TITLE, BUTTON_TEXT_BANNER } from 'features/forceUpdate/constants'
-import { onPressStoreLink } from 'features/forceUpdate/helpers/onPressStoreLink'
-import { useRemoteBanner } from 'features/forceUpdate/helpers/useRemoteBanner'
import { openUrl } from 'features/navigation/helpers/openUrl'
+import { TITLE, BUTTON_TEXT_BANNER } from 'features/remoteBanner/constants'
+import { onPressStoreLink } from 'features/remoteBanner/helpers/onPressStoreLink'
+import { useRemoteBanner } from 'features/remoteBanner/helpers/useRemoteBanner'
import { accessibilityAndTestId } from 'libs/accessibilityAndTestId'
import { RemoteStoreBannerRedirectionType } from 'libs/firebase/firestore/types'
import { BannerWithBackground } from 'ui/components/ModuleBanner/BannerWithBackground'
import { ArrowAgain } from 'ui/svg/icons/ArrowAgain'
import { TypoDS } from 'ui/theme'
-export const ForceUpdateBanner = () => {
+export const RemoteBanner = () => {
const { title, subtitle, redirectionUrl, redirectionType } = useRemoteBanner()
const accessibilityLabel =
redirectionUrl && redirectionType === RemoteStoreBannerRedirectionType.EXTERNAL
diff --git a/src/features/forceUpdate/constants.ts b/src/features/remoteBanner/constants.ts
similarity index 100%
rename from src/features/forceUpdate/constants.ts
rename to src/features/remoteBanner/constants.ts
diff --git a/src/features/forceUpdate/helpers/onPressStoreLink.native.test.ts b/src/features/remoteBanner/helpers/onPressStoreLink.native.test.ts
similarity index 93%
rename from src/features/forceUpdate/helpers/onPressStoreLink.native.test.ts
rename to src/features/remoteBanner/helpers/onPressStoreLink.native.test.ts
index a7e6ce96a43..3d421abc964 100644
--- a/src/features/forceUpdate/helpers/onPressStoreLink.native.test.ts
+++ b/src/features/remoteBanner/helpers/onPressStoreLink.native.test.ts
@@ -1,5 +1,5 @@
-import { STORE_LINK } from 'features/forceUpdate/constants'
import { openUrl } from 'features/navigation/helpers/openUrl'
+import { STORE_LINK } from 'features/remoteBanner/constants'
import { analytics } from 'libs/analytics'
import * as PackageJson from 'libs/packageJson'
diff --git a/src/features/forceUpdate/helpers/onPressStoreLink.ts b/src/features/remoteBanner/helpers/onPressStoreLink.ts
similarity index 88%
rename from src/features/forceUpdate/helpers/onPressStoreLink.ts
rename to src/features/remoteBanner/helpers/onPressStoreLink.ts
index 555f2334d90..70e7cc340a5 100644
--- a/src/features/forceUpdate/helpers/onPressStoreLink.ts
+++ b/src/features/remoteBanner/helpers/onPressStoreLink.ts
@@ -1,7 +1,7 @@
import { Platform } from 'react-native'
-import { STORE_LINK } from 'features/forceUpdate/constants'
import { openUrl } from 'features/navigation/helpers/openUrl'
+import { STORE_LINK } from 'features/remoteBanner/constants'
import { analytics } from 'libs/analytics'
import { getAppBuildVersion } from 'libs/packageJson'
diff --git a/src/features/forceUpdate/helpers/onPressStoreLink.web.test.ts b/src/features/remoteBanner/helpers/onPressStoreLink.web.test.ts
similarity index 100%
rename from src/features/forceUpdate/helpers/onPressStoreLink.web.test.ts
rename to src/features/remoteBanner/helpers/onPressStoreLink.web.test.ts
diff --git a/src/features/forceUpdate/helpers/useMinimalBuildNumber.native.test.ts b/src/features/remoteBanner/helpers/useMinimalBuildNumber.native.test.ts
similarity index 92%
rename from src/features/forceUpdate/helpers/useMinimalBuildNumber.native.test.ts
rename to src/features/remoteBanner/helpers/useMinimalBuildNumber.native.test.ts
index 184b8c0be43..0a791d04a9f 100644
--- a/src/features/forceUpdate/helpers/useMinimalBuildNumber.native.test.ts
+++ b/src/features/remoteBanner/helpers/useMinimalBuildNumber.native.test.ts
@@ -1,6 +1,6 @@
import { onlineManager } from 'react-query'
-import { useMinimalBuildNumber } from 'features/forceUpdate/helpers/useMinimalBuildNumber'
+import { useMinimalBuildNumber } from 'features/remoteBanner/helpers/useMinimalBuildNumber'
import { getMinimalBuildNumber } from 'libs/firebase/firestore/getMinimalBuildNumber/getMinimalBuildNumber'
import { reactQueryProviderHOC } from 'tests/reactQueryProviderHOC'
import { renderHook, waitFor } from 'tests/utils'
diff --git a/src/features/forceUpdate/helpers/useMinimalBuildNumber.ts b/src/features/remoteBanner/helpers/useMinimalBuildNumber.ts
similarity index 100%
rename from src/features/forceUpdate/helpers/useMinimalBuildNumber.ts
rename to src/features/remoteBanner/helpers/useMinimalBuildNumber.ts
diff --git a/src/features/forceUpdate/helpers/useMustUpdateApp.ts b/src/features/remoteBanner/helpers/useMustUpdateApp.ts
similarity index 91%
rename from src/features/forceUpdate/helpers/useMustUpdateApp.ts
rename to src/features/remoteBanner/helpers/useMustUpdateApp.ts
index 1682409a2e4..c8dfbcdb95b 100644
--- a/src/features/forceUpdate/helpers/useMustUpdateApp.ts
+++ b/src/features/remoteBanner/helpers/useMustUpdateApp.ts
@@ -1,6 +1,6 @@
import { useEffect, useRef } from 'react'
-import { useMinimalBuildNumber } from 'features/forceUpdate/helpers/useMinimalBuildNumber'
+import { useMinimalBuildNumber } from 'features/remoteBanner/helpers/useMinimalBuildNumber'
import { eventMonitoring } from 'libs/monitoring'
import { getAppBuildVersion } from 'libs/packageJson'
diff --git a/src/features/forceUpdate/helpers/useRemoteBanner.native.test.ts b/src/features/remoteBanner/helpers/useRemoteBanner.native.test.ts
similarity index 85%
rename from src/features/forceUpdate/helpers/useRemoteBanner.native.test.ts
rename to src/features/remoteBanner/helpers/useRemoteBanner.native.test.ts
index f0af4f08b33..2b70ba4a964 100644
--- a/src/features/forceUpdate/helpers/useRemoteBanner.native.test.ts
+++ b/src/features/remoteBanner/helpers/useRemoteBanner.native.test.ts
@@ -1,10 +1,10 @@
-import { useRemoteBanner } from 'features/forceUpdate/helpers/useRemoteBanner'
+import { useRemoteBanner } from 'features/remoteBanner/helpers/useRemoteBanner'
import { getRemoteBanner } from 'libs/firebase/firestore/getRemoteBanner/getRemoteBanner'
import { reactQueryProviderHOC } from 'tests/reactQueryProviderHOC'
import { renderHook, waitFor } from 'tests/utils'
jest.mock('@react-native-firebase/firestore')
-jest.mock('libs/firebase/firestore/getRemoteBanner/getBanner')
+jest.mock('libs/firebase/firestore/getRemoteBanner/getRemoteBanner')
const mockGetBanner = getRemoteBanner as jest.Mock
describe('useRemoteBanner', () => {
diff --git a/src/features/forceUpdate/helpers/useRemoteBanner.ts b/src/features/remoteBanner/helpers/useRemoteBanner.ts
similarity index 100%
rename from src/features/forceUpdate/helpers/useRemoteBanner.ts
rename to src/features/remoteBanner/helpers/useRemoteBanner.ts
diff --git a/src/features/forceUpdate/helpers/useResetOnMinimalBuild.native.test.ts b/src/features/remoteBanner/helpers/useResetOnMinimalBuild.native.test.ts
similarity index 95%
rename from src/features/forceUpdate/helpers/useResetOnMinimalBuild.native.test.ts
rename to src/features/remoteBanner/helpers/useResetOnMinimalBuild.native.test.ts
index a8aabca3a80..a7e843cac75 100644
--- a/src/features/forceUpdate/helpers/useResetOnMinimalBuild.native.test.ts
+++ b/src/features/remoteBanner/helpers/useResetOnMinimalBuild.native.test.ts
@@ -1,4 +1,4 @@
-import * as useMinimalBuildNumberModule from 'features/forceUpdate/helpers/useMinimalBuildNumber'
+import * as useMinimalBuildNumberModule from 'features/remoteBanner/helpers/useMinimalBuildNumber'
import * as packageJson from 'libs/packageJson'
import { reactQueryProviderHOC } from 'tests/reactQueryProviderHOC'
import { renderHook } from 'tests/utils'
diff --git a/src/features/forceUpdate/helpers/useResetOnMinimalBuild.ts b/src/features/remoteBanner/helpers/useResetOnMinimalBuild.ts
similarity index 88%
rename from src/features/forceUpdate/helpers/useResetOnMinimalBuild.ts
rename to src/features/remoteBanner/helpers/useResetOnMinimalBuild.ts
index b31bbb22a62..ca0c165d996 100644
--- a/src/features/forceUpdate/helpers/useResetOnMinimalBuild.ts
+++ b/src/features/remoteBanner/helpers/useResetOnMinimalBuild.ts
@@ -1,6 +1,6 @@
import { useEffect } from 'react'
-import { useMinimalBuildNumber } from 'features/forceUpdate/helpers/useMinimalBuildNumber'
+import { useMinimalBuildNumber } from 'features/remoteBanner/helpers/useMinimalBuildNumber'
import { getAppBuildVersion } from 'libs/packageJson'
export function useResetOnMinimalBuild(resetErrorBoundary: () => void) {
diff --git a/src/features/forceUpdate/helpers/useShowForceUpdateWhenDisableActivation.native.test.ts b/src/features/remoteBanner/helpers/useShowForceUpdateWhenDisableActivation.native.test.ts
similarity index 94%
rename from src/features/forceUpdate/helpers/useShowForceUpdateWhenDisableActivation.native.test.ts
rename to src/features/remoteBanner/helpers/useShowForceUpdateWhenDisableActivation.native.test.ts
index f2b4b6924c3..345484fa216 100644
--- a/src/features/forceUpdate/helpers/useShowForceUpdateWhenDisableActivation.native.test.ts
+++ b/src/features/remoteBanner/helpers/useShowForceUpdateWhenDisableActivation.native.test.ts
@@ -1,4 +1,4 @@
-import { useShowForceUpdateWhenDisableActivation } from 'features/forceUpdate/helpers/useShowForceUpdateWhenDisableActivation'
+import { useShowForceUpdateWhenDisableActivation } from 'features/remoteBanner/helpers/useShowForceUpdateWhenDisableActivation'
import { setFeatureFlags } from 'libs/firebase/firestore/featureFlags/__tests__/setFeatureFlags'
import { RemoteStoreFeatureFlags } from 'libs/firebase/firestore/types'
import { renderHook } from 'tests/utils'
diff --git a/src/features/forceUpdate/helpers/useShowForceUpdateWhenDisableActivation.ts b/src/features/remoteBanner/helpers/useShowForceUpdateWhenDisableActivation.ts
similarity index 83%
rename from src/features/forceUpdate/helpers/useShowForceUpdateWhenDisableActivation.ts
rename to src/features/remoteBanner/helpers/useShowForceUpdateWhenDisableActivation.ts
index 47454d72cf3..3398ae2c275 100644
--- a/src/features/forceUpdate/helpers/useShowForceUpdateWhenDisableActivation.ts
+++ b/src/features/remoteBanner/helpers/useShowForceUpdateWhenDisableActivation.ts
@@ -1,4 +1,4 @@
-import { ForceUpdateWithResetErrorBoundary } from 'features/forceUpdate/pages/ForceUpdateWithResetErrorBoundary'
+import { ForceUpdateWithResetErrorBoundary } from 'features/remoteBanner/pages/ForceUpdateWithResetErrorBoundary'
import { useFeatureFlag } from 'libs/firebase/firestore/featureFlags/useFeatureFlag'
import { RemoteStoreFeatureFlags } from 'libs/firebase/firestore/types'
import { ScreenError } from 'libs/monitoring'
diff --git a/src/features/forceUpdate/pages/ForceUpdate.native.test.tsx b/src/features/remoteBanner/pages/ForceUpdate.native.test.tsx
similarity index 88%
rename from src/features/forceUpdate/pages/ForceUpdate.native.test.tsx
rename to src/features/remoteBanner/pages/ForceUpdate.native.test.tsx
index e01fc226924..1f5703f16d2 100644
--- a/src/features/forceUpdate/pages/ForceUpdate.native.test.tsx
+++ b/src/features/remoteBanner/pages/ForceUpdate.native.test.tsx
@@ -5,7 +5,7 @@ import { render, screen } from 'tests/utils'
import { ForceUpdate } from './ForceUpdate'
jest.mock('libs/firebase/analytics/analytics')
-jest.mock('features/forceUpdate/helpers/useMinimalBuildNumber')
+jest.mock('features/remoteBanner/helpers/useMinimalBuildNumber')
jest.mock('react-native/Libraries/Animated/createAnimatedComponent', () => {
return function createAnimatedComponent(Component: unknown) {
return Component
diff --git a/src/features/remoteBanner/pages/ForceUpdate.tsx b/src/features/remoteBanner/pages/ForceUpdate.tsx
new file mode 100644
index 00000000000..a6e5e525c4b
--- /dev/null
+++ b/src/features/remoteBanner/pages/ForceUpdate.tsx
@@ -0,0 +1,5 @@
+import React from 'react'
+
+import { ForceUpdateInfos } from 'features/remoteBanner/components/ForceUpdateInfos'
+
+export const ForceUpdate = () =>
diff --git a/src/features/forceUpdate/pages/ForceUpdate.web.test.tsx b/src/features/remoteBanner/pages/ForceUpdate.web.test.tsx
similarity index 100%
rename from src/features/forceUpdate/pages/ForceUpdate.web.test.tsx
rename to src/features/remoteBanner/pages/ForceUpdate.web.test.tsx
diff --git a/src/features/forceUpdate/pages/ForceUpdateWithResetErrorBoundary.native.test.tsx b/src/features/remoteBanner/pages/ForceUpdateWithResetErrorBoundary.native.test.tsx
similarity index 90%
rename from src/features/forceUpdate/pages/ForceUpdateWithResetErrorBoundary.native.test.tsx
rename to src/features/remoteBanner/pages/ForceUpdateWithResetErrorBoundary.native.test.tsx
index b0af9c286a6..3b317ea4aa1 100644
--- a/src/features/forceUpdate/pages/ForceUpdateWithResetErrorBoundary.native.test.tsx
+++ b/src/features/remoteBanner/pages/ForceUpdateWithResetErrorBoundary.native.test.tsx
@@ -5,7 +5,7 @@ import { render, screen } from 'tests/utils'
import { ForceUpdateWithResetErrorBoundary } from './ForceUpdateWithResetErrorBoundary'
jest.mock('libs/firebase/analytics/analytics')
-jest.mock('features/forceUpdate/helpers/useMinimalBuildNumber')
+jest.mock('features/remoteBanner/helpers/useMinimalBuildNumber')
jest.mock('react-native/Libraries/Animated/createAnimatedComponent', () => {
return function createAnimatedComponent(Component: unknown) {
return Component
diff --git a/src/features/forceUpdate/pages/ForceUpdateWithResetErrorBoundary.tsx b/src/features/remoteBanner/pages/ForceUpdateWithResetErrorBoundary.tsx
similarity index 57%
rename from src/features/forceUpdate/pages/ForceUpdateWithResetErrorBoundary.tsx
rename to src/features/remoteBanner/pages/ForceUpdateWithResetErrorBoundary.tsx
index 3787521d106..3adebaa26d2 100644
--- a/src/features/forceUpdate/pages/ForceUpdateWithResetErrorBoundary.tsx
+++ b/src/features/remoteBanner/pages/ForceUpdateWithResetErrorBoundary.tsx
@@ -1,7 +1,7 @@
import React from 'react'
-import { ForceUpdateInfos } from 'features/forceUpdate/components/ForceUpdateInfos'
-import { useResetOnMinimalBuild } from 'features/forceUpdate/helpers/useResetOnMinimalBuild'
+import { ForceUpdateInfos } from 'features/remoteBanner/components/ForceUpdateInfos'
+import { useResetOnMinimalBuild } from 'features/remoteBanner/helpers/useResetOnMinimalBuild'
type Props = {
resetErrorBoundary: () => void
diff --git a/src/features/forceUpdate/pages/ForceUpdateWithResetErrorBoundary.web.test.tsx b/src/features/remoteBanner/pages/ForceUpdateWithResetErrorBoundary.web.test.tsx
similarity index 91%
rename from src/features/forceUpdate/pages/ForceUpdateWithResetErrorBoundary.web.test.tsx
rename to src/features/remoteBanner/pages/ForceUpdateWithResetErrorBoundary.web.test.tsx
index f1598c9b58b..84cecd822c9 100644
--- a/src/features/forceUpdate/pages/ForceUpdateWithResetErrorBoundary.web.test.tsx
+++ b/src/features/remoteBanner/pages/ForceUpdateWithResetErrorBoundary.web.test.tsx
@@ -6,7 +6,7 @@ import { ForceUpdateWithResetErrorBoundary } from './ForceUpdateWithResetErrorBo
jest.mock('libs/firebase/analytics/analytics')
jest.mock('libs/firebase/remoteConfig/remoteConfig.services')
-jest.mock('features/forceUpdate/helpers/useMinimalBuildNumber')
+jest.mock('features/remoteBanner/helpers/useMinimalBuildNumber')
describe('', () => {
describe('Accessibility', () => {