UNPKG

@gechiui/compose

Version:
31 lines (28 loc) 837 B
/** * GeChiUI dependencies */ import { useState, useEffect } from '@gechiui/element'; import { subscribePreferredColorScheme, isInitialColorSchemeDark, } from '@gechiui/react-native-bridge'; /** * Returns the color scheme value when it changes. Possible values: [ 'light', 'dark' ] * * @return {string} return current color scheme. */ function usePreferredColorScheme() { const [ currentColorScheme, setCurrentColorScheme ] = useState( isInitialColorSchemeDark ? 'dark' : 'light' ); useEffect( () => { subscribePreferredColorScheme( ( { isPreferredColorSchemeDark } ) => { const colorScheme = isPreferredColorSchemeDark ? 'dark' : 'light'; if ( colorScheme !== currentColorScheme ) { setCurrentColorScheme( colorScheme ); } } ); } ); return currentColorScheme; } export default usePreferredColorScheme;