Skip to content

useVisibilityChange

Calls a callback function with the visibility state when the screen's visibility changes. The callback function receives the return value from useVisibility. If the return value is true, it passes 'visible', and if false, it passes 'hidden'.

Signature

typescript
function useVisibilityChange(callback: VisibilityCallback): void;

Parameter

  • callbackrequired · VisibilityCallback

    Calls a callback function that receives visibility changes when the screen's visibility changes.

Example

Example of logging when screen visibility changes

tsx
import { useState } from 'react';
import { Text, View } from 'react-native';
import { useVisibilityChange, VisibilityState } from '@granite-js/react-native';

export function UseVisibilityChangeExample() {
  const [visibilityHistory, setVisibilityHistory] = useState<VisibilityState[]>([]);

  useVisibilityChange((visibility) => {
    setVisibilityHistory((prev) => [...prev, visibility]);
  });

  return (
    <View>
      <Text>Logs are created when leaving and returning to the home screen.</Text>

      {visibilityHistory.map((visibility, index) => (
        <Text key={index}>{JSON.stringify(visibility)}</Text>
      ))}
    </View>
  );
}