Skip to content

Commit

Permalink
chore: update hide splash scren logic
Browse files Browse the repository at this point in the history
  • Loading branch information
MounirDhahri committed Sep 19, 2024
1 parent 33e40be commit cbc129c
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 14 deletions.
13 changes: 1 addition & 12 deletions src/app/App.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { GoogleSignin } from "@react-native-google-signin/google-signin"
import * as Sentry from "@sentry/react-native"
import { homeViewScreenQueryVariables } from "app/Scenes/HomeView/HomeView"
import { GlobalStore, unsafe__getEnvironment, unsafe_getDevToggle } from "app/store/GlobalStore"
import { codePushOptions } from "app/system/codepush"
import { AsyncStorageDevtools } from "app/system/devTools/AsyncStorageDevTools"
Expand All @@ -11,7 +10,6 @@ import { setupSentry } from "app/system/errorReporting/setupSentry"
import { ModalStack } from "app/system/navigation/ModalStack"
import { usePurgeCacheOnAppUpdate } from "app/system/relay/usePurgeCacheOnAppUpdate"
import { useDevToggle } from "app/utils/hooks/useDevToggle"
import { useFeatureFlag } from "app/utils/hooks/useFeatureFlag"
import { addTrackingProvider } from "app/utils/track"
import {
SEGMENT_TRACKING_PROVIDER,
Expand All @@ -30,14 +28,13 @@ import { Settings } from "react-native-fbsdk-next"
import "react-native-get-random-values"
import { useWebViewCookies } from "./Components/ArtsyWebView"
import { FPSCounter } from "./Components/FPSCounter"
import { ArtsyNativeModule } from "./NativeModules/ArtsyNativeModule"
import { Providers } from "./Providers"
import { BottomTabsNavigator } from "./Scenes/BottomTabs/BottomTabsNavigator"
import { ForceUpdate } from "./Scenes/ForceUpdate/ForceUpdate"
import { Onboarding } from "./Scenes/Onboarding/Onboarding"
import { DynamicIslandStagingIndicator } from "./utils/DynamicIslandStagingIndicator"
import { createAllChannels, savePendingToken } from "./utils/PushNotification"
import { useInitializeQueryPrefetching, usePrefetch } from "./utils/queryPrefetching"
import { useInitializeQueryPrefetching } from "./utils/queryPrefetching"
import { ConsoleTrackingProvider } from "./utils/track/ConsoleTrackingProvider"
import { useFreshInstallTracking } from "./utils/useFreshInstallTracking"
import { useInitialNotification } from "./utils/useInitialNotification"
Expand Down Expand Up @@ -93,10 +90,8 @@ const Main = () => {
const forceUpdateMessage = GlobalStore.useAppState(
(state) => state.artsyPrefs.echo.forceUpdateMessage
)
const preferLegacyHomeScreen = useFeatureFlag("ARPreferLegacyHomeScreen")

const fpsCounter = useDevToggle("DTFPSCounter")
const shouldDisplayNewHomeView = ArtsyNativeModule.isBetaOrDev && !preferLegacyHomeScreen

useStripeConfig()
useSiftConfig()
Expand All @@ -116,14 +111,8 @@ const Main = () => {
usePurgeCacheOnAppUpdate()
useHideSplashScreen()

const prefetchUrl = usePrefetch()

useEffect(() => {
if (isLoggedIn) {
if (shouldDisplayNewHomeView) {
prefetchUrl("/", homeViewScreenQueryVariables())
}

savePendingToken()
}
}, [isLoggedIn])
Expand Down
2 changes: 1 addition & 1 deletion src/app/utils/queryPrefetching.ts
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ const prefetchUrl = async <TQuery extends OperationType>(

try {
for (const query of queries) {
prefetchQuery(query, options)
await prefetchQuery(query, options)
}
} catch (error) {
console.error(`Prefetching "${url}" failed.`, error)
Expand Down
21 changes: 20 additions & 1 deletion src/app/utils/useHideSplashScreen.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
import { ArtsyNativeModule } from "app/NativeModules/ArtsyNativeModule"
import { homeViewScreenQueryVariables } from "app/Scenes/HomeView/HomeView"
import { GlobalStore } from "app/store/GlobalStore"
import { useFeatureFlag } from "app/utils/hooks/useFeatureFlag"
import { usePrefetch } from "app/utils/queryPrefetching"
import { useEffect } from "react"
import RNBootSplash from "react-native-bootsplash"

Expand All @@ -7,14 +11,29 @@ export const useHideSplashScreen = () => {
const isHydrated = GlobalStore.useAppState((state) => state.sessionState.isHydrated)
const isLoggedIn = GlobalStore.useAppState((state) => state.auth.userAccessToken)

const prefetchUrl = usePrefetch()

const preferLegacyHomeScreen = useFeatureFlag("ARPreferLegacyHomeScreen")

const shouldDisplayNewHomeView = ArtsyNativeModule.isBetaOrDev && !preferLegacyHomeScreen

useEffect(() => {
const hideSplashScreen = async () => {
await RNBootSplash.hide({ fade: true })
}

if (isHydrated) {
if (isLoggedIn && isNavigationReady) {
hideSplashScreen()
if (shouldDisplayNewHomeView) {
prefetchUrl("/", homeViewScreenQueryVariables())
?.then(() => {
hideSplashScreen()
})
.catch((error) => {
console.error("Failed to prefetch home view", error)
hideSplashScreen()
})
}
return
}
if (!isLoggedIn) {
Expand Down

0 comments on commit cbc129c

Please sign in to comment.