import { useMemo } from 'react'; import { View } from 'react-native'; import Svg from 'react-native-svg'; import { Icon } from '../../components/wui-icon'; import { Image } from '../../components/wui-image'; import { Shimmer } from '../../components/wui-shimmer'; import { QRCodeUtil } from '../../utils/QRCodeUtil'; import { BorderRadius, LightTheme, Spacing } from '../../utils/ThemeUtil'; import styles from './styles'; export interface QrCodeProps { size: number; uri?: string; imageSrc?: string; testID?: string; } export function QrCode({ size, uri, imageSrc, testID }: QrCodeProps) { const Theme = LightTheme; const containerPadding = Spacing.l; const qrSize = size - containerPadding * 2; const dots = useMemo( () => (uri ? QRCodeUtil.generate(uri, qrSize, qrSize / 4) : []), [uri, qrSize] ); const shimmerTemplate = () => { return ; }; const logoTemplate = () => { if (imageSrc) { return ( ); } return ( ); }; return uri ? ( {dots} {logoTemplate()} ) : ( shimmerTemplate() ); }