x0-react-sdk
Version:
React SDK for X0Pay Hyperlane token bridging with MetaMask and Safe wallet integration
38 lines (31 loc) • 1.05 kB
text/typescript
export const isMobile = (): boolean => {
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
};
export const isMetaMaskInstalled = (): boolean => {
return typeof window !== 'undefined' && !!window.ethereum?.isMetaMask;
};
export const isWalletConnectAvailable = (): boolean => {
return typeof window !== 'undefined';
};
export const getRecommendedWalletType = (): 'metamask' | 'walletconnect' => {
if (isMobile()) {
return 'walletconnect';
}
if (isMetaMaskInstalled()) {
return 'metamask';
}
return 'walletconnect';
};
export const isInAppBrowser = (): boolean => {
const userAgent = navigator.userAgent.toLowerCase();
return (
userAgent.includes('fbav') || // Facebook
userAgent.includes('instagram') || // Instagram
userAgent.includes('line') || // Line
userAgent.includes('wv') || // WebView
userAgent.includes('micromessenger') // WeChat
);
};
export const canUseDeepLinks = (): boolean => {
return isMobile() && !isInAppBrowser();
};