import React from 'react'; import { Image, StyleSheet, TouchableHighlight } from 'react-native'; import { useSelector } from 'react-redux'; import { useSafeAreaFrame } from 'react-native-safe-area-context'; import { Meme } from '../../../database'; import { RootState } from '../../../state'; import { useImageDimensions } from '@react-native-community/hooks'; import { MemeFail } from '..'; import { getFontAwesome5IconSize } from '../../../utilities'; const memeMasonryItemStyles = StyleSheet.create({ view: { margin: 2.5, borderRadius: 5, }, image: { borderRadius: 5, }, }); const MemesMasonryItem = ({ meme, index, focusMeme, }: { meme: Meme; index: number; focusMeme: (index: number) => void; }) => { const { width } = useSafeAreaFrame(); const masonryColumns = useSelector( (state: RootState) => state.settings.masonryColumns, ); const { dimensions, loading, error } = useImageDimensions({ uri: meme.uri }); if (!error && (loading || !dimensions)) return <>; return ( focusMeme(index)} style={memeMasonryItemStyles.view}> {error || !dimensions ? ( ) : ( )} ); }; export default MemesMasonryItem;