Docs
Cloudflare
Railway
CodeRabbit
OpenRouter
SerpAPI
Clerk
WorkOS
AG Grid
Netlify
Prisma
Unkey
Sentry
Electric
Cloudflare
Railway
CodeRabbit
OpenRouter
SerpAPI
Clerk
WorkOS
AG Grid
Netlify
Prisma
Unkey
Sentry
Electric
Community Resources

React Example: React Native

import * as React from 'react';
import { AppStateStatus, Platform } from 'react-native';
import { NavigationContainer } from '@react-navigation/native';
import { QueryClient, QueryClientProvider, focusManager } from 'react-query';

import { useAppState } from '@app/hooks/useAppState';
import { MoviesStack } from '@app/navigation/MoviesStack';
import { useOnlineManager } from '@app/hooks/useOnlineManager';

function onAppStateChange(status: AppStateStatus) {
  // React Query already supports in web browser refetch on window focus by default
  if (Platform.OS !== 'web') {
    focusManager.setFocused(status === 'active');
  }
}

const queryClient = new QueryClient({
  defaultOptions: { queries: { retry: 2 } },
});

export default function App() {
  useOnlineManager();

  useAppState(onAppStateChange);

  return (
    <QueryClientProvider client={queryClient}>
      <NavigationContainer>
        <MoviesStack />
      </NavigationContainer>
    </QueryClientProvider>
  );
}
import * as React from 'react';
import { AppStateStatus, Platform } from 'react-native';
import { NavigationContainer } from '@react-navigation/native';
import { QueryClient, QueryClientProvider, focusManager } from 'react-query';

import { useAppState } from '@app/hooks/useAppState';
import { MoviesStack } from '@app/navigation/MoviesStack';
import { useOnlineManager } from '@app/hooks/useOnlineManager';

function onAppStateChange(status: AppStateStatus) {
  // React Query already supports in web browser refetch on window focus by default
  if (Platform.OS !== 'web') {
    focusManager.setFocused(status === 'active');
  }
}

const queryClient = new QueryClient({
  defaultOptions: { queries: { retry: 2 } },
});

export default function App() {
  useOnlineManager();

  useAppState(onAppStateChange);

  return (
    <QueryClientProvider client={queryClient}>
      <NavigationContainer>
        <MoviesStack />
      </NavigationContainer>
    </QueryClientProvider>
  );
}