@cardql/react-native
Version:
CardQL SDK for React Native applications with mobile-optimized features
60 lines (49 loc) • 1.45 kB
text/typescript
import { useState, useEffect } from "react";
// Network status interface
export interface NetworkStatus {
isConnected: boolean;
type?: string;
isWifiEnabled?: boolean;
isInternetReachable?: boolean;
}
// Mock implementation for now
// In a real React Native app, you would use @react-native-community/netinfo
export function useNetworkStatus(): NetworkStatus {
const [networkStatus, setNetworkStatus] = useState<NetworkStatus>({
isConnected: true,
type: "wifi",
isWifiEnabled: true,
isInternetReachable: true,
});
useEffect(() => {
// Mock network status changes for demo
// In real implementation:
/*
import NetInfo from '@react-native-community/netinfo';
const unsubscribe = NetInfo.addEventListener(state => {
setNetworkStatus({
isConnected: state.isConnected ?? false,
type: state.type,
isWifiEnabled: state.isWifiEnabled ?? false,
isInternetReachable: state.isInternetReachable ?? false,
});
});
return unsubscribe;
*/
return () => {};
}, []);
return networkStatus;
}
// Helper hooks
export function useIsOnline(): boolean {
const { isConnected } = useNetworkStatus();
return isConnected;
}
export function useIsOffline(): boolean {
const { isConnected } = useNetworkStatus();
return !isConnected;
}
export function useNetworkType(): string | undefined {
const { type } = useNetworkStatus();
return type;
}