mirror of
https://github.com/streamyfin/streamyfin.git
synced 2026-01-15 15:48:05 +00:00
31 lines
902 B
TypeScript
31 lines
902 B
TypeScript
import NetInfo from "@react-native-community/netinfo";
|
|
import { useCallback, useEffect, useState } from "react";
|
|
|
|
export function useNetworkStatus() {
|
|
const [isConnected, setIsConnected] = useState(false);
|
|
const [loading, setLoading] = useState(false);
|
|
|
|
// Manual check (optional)
|
|
const retryCheck = useCallback(async () => {
|
|
setLoading(true);
|
|
const state = await NetInfo.fetch();
|
|
setIsConnected(!!state.isConnected && !!state.isInternetReachable);
|
|
setLoading(false);
|
|
}, []);
|
|
|
|
useEffect(() => {
|
|
const unsubscribe = NetInfo.addEventListener((state) => {
|
|
setIsConnected(!!state.isConnected && !!state.isInternetReachable);
|
|
});
|
|
|
|
// Initial state
|
|
NetInfo.fetch().then((state) => {
|
|
setIsConnected(!!state.isConnected && !!state.isInternetReachable);
|
|
});
|
|
|
|
return () => unsubscribe();
|
|
}, []);
|
|
|
|
return { isConnected, loading, retryCheck };
|
|
}
|