From 034ff3f4789173ddff02332a50ef8e5588dae4ac Mon Sep 17 00:00:00 2001 From: Tom Heidenreich <53293648+tom-heidenreich@users.noreply.github.com> Date: Mon, 27 Jan 2025 10:28:53 +0100 Subject: [PATCH] Feat/Show Splashcreen until UI loaded (#437) --- app/(auth)/(tabs)/(home)/index.tsx | 9 ++- app/_layout.tsx | 37 +++++----- bun.lockb | Bin 595463 -> 595777 bytes package.json | 1 + providers/JellyfinProvider.tsx | 11 ++- providers/SplashScreenProvider.tsx | 115 +++++++++++++++++++++++++++++ 6 files changed, 150 insertions(+), 23 deletions(-) create mode 100644 providers/SplashScreenProvider.tsx diff --git a/app/(auth)/(tabs)/(home)/index.tsx b/app/(auth)/(tabs)/(home)/index.tsx index 44459e8c..339db9c0 100644 --- a/app/(auth)/(tabs)/(home)/index.tsx +++ b/app/(auth)/(tabs)/(home)/index.tsx @@ -36,6 +36,7 @@ import { View, } from "react-native"; import { useSafeAreaInsets } from "react-native-safe-area-context"; +import { useSplashScreenLoading, useSplashScreenVisible } from "@/providers/SplashScreenProvider"; type ScrollingCollectionListSection = { type: "ScrollingCollectionList"; @@ -146,6 +147,10 @@ export default function index() { staleTime: 60 * 1000, }); + // show splash screen until query loaded + useSplashScreenLoading(l1) + const splashScreenVisible = useSplashScreenVisible() + const userViews = useMemo( () => data?.filter((l) => !settings?.hiddenLibraries?.includes(l.Id!)), [data, settings?.hiddenLibraries] @@ -399,7 +404,9 @@ export default function index() { ); - if (l1) + // this spinner should only show up, when user navigates here + // on launch the splash screen is used for loading + if (l1 && !splashScreenVisible) return ( diff --git a/app/_layout.tsx b/app/_layout.tsx index 2092d722..cc0c0dd3 100644 --- a/app/_layout.tsx +++ b/app/_layout.tsx @@ -8,6 +8,7 @@ import { } from "@/providers/JellyfinProvider"; import { JobQueueProvider } from "@/providers/JobQueueProvider"; import { PlaySettingsProvider } from "@/providers/PlaySettingsProvider"; +import { SplashScreenProvider, useSplashScreenLoading } from "@/providers/SplashScreenProvider"; import { WebSocketProvider } from "@/providers/WebSocketProvider"; import { orientationAtom } from "@/utils/atoms/orientation"; import { Settings, useSettings } from "@/utils/atoms/settings"; @@ -33,7 +34,6 @@ import * as Linking from "expo-linking"; import * as Notifications from "expo-notifications"; import { router, Stack } from "expo-router"; import * as ScreenOrientation from "expo-screen-orientation"; -import * as SplashScreen from "expo-splash-screen"; import * as TaskManager from "expo-task-manager"; import { Provider as JotaiProvider, useAtom } from "jotai"; import { useEffect, useRef } from "react"; @@ -46,8 +46,6 @@ import { getLocales } from "expo-localization"; import "react-native-reanimated"; import { Toaster } from "sonner-native"; -SplashScreen.preventAutoHideAsync(); - Notifications.setNotificationHandler({ handleNotification: async () => ({ shouldShowAlert: true, @@ -213,27 +211,15 @@ const checkAndRequestPermissions = async () => { }; export default function RootLayout() { - const [loaded] = useFonts({ - SpaceMono: require("../assets/fonts/SpaceMono-Regular.ttf"), - }); - - useEffect(() => { - if (loaded) { - SplashScreen.hideAsync(); - } - }, [loaded]); - Appearance.setColorScheme("dark"); - if (!loaded) { - return null; - } - return ( - - - + + + + + ); } @@ -319,6 +305,17 @@ function Layout() { const { hostname, path, queryParams } = Linking.parse(url); } + const [loaded] = useFonts({ + SpaceMono: require("../assets/fonts/SpaceMono-Regular.ttf"), + }); + + // show splash screen until everything loaded + useSplashScreenLoading(!loaded) + + if (!loaded) { + return null; + } + return ( diff --git a/bun.lockb b/bun.lockb index d3b67a763f5dd23469791c605c59618c64ac91d7..2e5bd5038ed480297d041d9234ef390f903f35a9 100755 GIT binary patch delta 93340 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 RDNRpxW*68#=?=$wD*${(fENG& diff --git a/package.json b/package.json index 740d7fa3..e88a252e 100644 --- a/package.json +++ b/package.json @@ -46,6 +46,7 @@ "expo-brightness": "~12.0.1", "expo-build-properties": "~0.12.5", "expo-constants": "~16.0.2", + "expo-crypto": "^14.0.2", "expo-dev-client": "~4.0.29", "expo-device": "~6.0.2", "expo-font": "~12.0.10", diff --git a/providers/JellyfinProvider.tsx b/providers/JellyfinProvider.tsx index dddebb10..13e77235 100644 --- a/providers/JellyfinProvider.tsx +++ b/providers/JellyfinProvider.tsx @@ -23,6 +23,7 @@ import { getDeviceName } from "react-native-device-info"; import { useTranslation } from "react-i18next"; import { useSettings } from "@/utils/atoms/settings"; import { JellyseerrApi, useJellyseerr } from "@/hooks/useJellyseerr"; +import { useSplashScreenLoading, useSplashScreenVisible } from "./SplashScreenProvider"; interface Server { address: string; @@ -341,11 +342,17 @@ export const JellyfinProvider: React.FC<{ children: ReactNode }> = ({ initiateQuickConnect, }; - useProtectedRoute(user, isLoading || isFetching); + let isLoadingOrFetching = isLoading || isFetching; + useProtectedRoute(user, isLoadingOrFetching); + + // show splash screen until everything loaded + useSplashScreenLoading(isLoadingOrFetching) + const splashScreenVisible = useSplashScreenVisible() return ( - {children} + {/* don't render login page when loading and splash screen visible */} + {isLoadingOrFetching && splashScreenVisible ? undefined : children} ); }; diff --git a/providers/SplashScreenProvider.tsx b/providers/SplashScreenProvider.tsx new file mode 100644 index 00000000..d62e8c66 --- /dev/null +++ b/providers/SplashScreenProvider.tsx @@ -0,0 +1,115 @@ +import { createContext, ReactNode, useContext, useEffect, useMemo, useState } from "react"; +import * as Crypto from 'expo-crypto'; +import * as SplashScreen from "expo-splash-screen"; + +class ChangeListenerMap extends Map { + constructor(private readonly onChange: (e: { self: ChangeListenerMap, key: K, oldValue: V | undefined, newValue: V }) => void) { + super() + } + + public set(key: K, value: V): this { + const oldValue = this.get(key); + super.set(key, value); + if(oldValue !== value) { + this.onChange({ self: this, key, oldValue, newValue: value }) + } + return this; + } +} + +type SplashScreenContextValue = { + splashScreenVisible: boolean, + componentLoaded: Map +} + +const SplashScreenContext = createContext(undefined) + +SplashScreen.preventAutoHideAsync(); + +export const SplashScreenProvider: React.FC<{ children: ReactNode }> = ({ + children, +}) => { + + const [splashScreenVisible, setSplashScreenVisible] = useState(true) + + const contextValue: SplashScreenContextValue = { + splashScreenVisible, + componentLoaded: new ChangeListenerMap(({ self }) => { + for(const entry of self.entries()) { + if(!entry[1]) { + // one component not loaded yet, not hiding splash screen + return + } + } + SplashScreen.hideAsync() + setSplashScreenVisible(false) + }) + } + + return ( + + {children} + + ) +} + +/** + * Show the Splash Screen until component is ready to be displayed. + * + * This only has an effect when component is mounted before Splash Screen is hidden, + * so it should only be used in components that show up on launch. + * + * @param isLoading The loading state of the component + * + * ## Usage + * ``` + * // Example 1: + * const isLoading = loadSomething() + * useSplashScreenLoading(isLoading) // splash screen visible until isLoading is false + * ``` + * ``` + * + * // Example 2: multiple loading states + * const isLoading1 = loadSomething() + * useSplashScreenLoading(isLoading1) // splash screen visible until isLoading1 and isLoading2 are false + * + * // this could be in different component and still have the same effect + * const isLoading2 = loadSomethingElse() + * useSplashScreenLoading(isLoading2) + * ``` + */ +export function useSplashScreenLoading(isLoading: boolean) { + const id = useMemo(() => Crypto.randomUUID(), []); + + const context = useContext(SplashScreenContext); + if(!context) { + throw new Error("useSplashScreenLoading must be used within a SplashScreenProvider"); + } + + useEffect(() => { + // update the loading state of component + context.componentLoaded.set(id, !isLoading) + + // cleanup when unmounting component + return () => { + context.componentLoaded.delete(id); + }; + }, [isLoading]) +} + +/** + * Get the visiblity of the Splash Screen. + * @returns the visibility of the Splash Screen + * + * ## Usage + * ``` + * const splashScreenIsVisible = useSplashScreenVisible() + * ``` + */ +export function useSplashScreenVisible() { + const context = useContext(SplashScreenContext); + if(!context) { + throw new Error("useSplashScreenVisible must be used within a SplashScreenProvider"); + } + return context.splashScreenVisible +} \ No newline at end of file