From a770f5635b549f2a87ffeaedd031dfe8e37b58c8 Mon Sep 17 00:00:00 2001 From: Mathieu Acthernoene Date: Tue, 22 Apr 2025 18:16:50 +0200 Subject: Edge to edge support (#7497) --- src/state/shell/light-status-bar.tsx | 49 ++++++++---------------------------- 1 file changed, 11 insertions(+), 38 deletions(-) (limited to 'src/state/shell/light-status-bar.tsx') diff --git a/src/state/shell/light-status-bar.tsx b/src/state/shell/light-status-bar.tsx index 6f47689d1..80df9ad90 100644 --- a/src/state/shell/light-status-bar.tsx +++ b/src/state/shell/light-status-bar.tsx @@ -1,44 +1,17 @@ -import {createContext, useContext, useEffect, useState} from 'react' - -import {isWeb} from '#/platform/detection' - -const LightStatusBarRefCountContext = createContext(false) -const SetLightStatusBarRefCountContext = createContext -> | null>(null) - -export function useLightStatusBar() { - return useContext(LightStatusBarRefCountContext) -} +import {useEffect} from 'react' +import {SystemBars} from 'react-native-edge-to-edge' export function useSetLightStatusBar(enabled: boolean) { - const setRefCount = useContext(SetLightStatusBarRefCountContext) useEffect(() => { - // noop on web -sfn - if (isWeb) return - - if (!setRefCount) { - if (__DEV__) - console.error( - 'useLightStatusBar was used without a SetLightStatusBarRefCountContext provider', - ) - return - } if (enabled) { - setRefCount(prev => prev + 1) - return () => setRefCount(prev => prev - 1) + const entry = SystemBars.pushStackEntry({ + style: { + statusBar: 'light', + }, + }) + return () => { + SystemBars.popStackEntry(entry) + } } - }, [enabled, setRefCount]) -} - -export function Provider({children}: React.PropsWithChildren<{}>) { - const [refCount, setRefCount] = useState(0) - - return ( - - 0}> - {children} - - - ) + }, [enabled]) } -- cgit 1.4.1