import React, { useState } from 'react'; import { useNavigation, NavigationProp } from '@react-navigation/native'; import { Image, TouchableHighlight, View } from 'react-native'; import { useSelector } from 'react-redux'; import { Meme } from '../../../database'; import { ROUTE, RootStackParamList } from '../../../types'; import { useDimensions } from '../../../contexts'; import { RootState } from '../../../state'; const MemesGridItem = ({ meme }: { meme: Meme }) => { const { navigate } = useNavigation>(); const { dimensions } = useDimensions(); const gridColumns = useSelector( (state: RootState) => state.settings.gridColumns, ); const [imageWidth, setImageWidth] = useState(); const [imageHeight, setImageHeight] = useState(); Image.getSize(meme.uri, () => { const paddedWidth = (dimensions.width * 0.92 - 5) / gridColumns; setImageWidth(paddedWidth); setImageHeight(paddedWidth); }); return ( <> {imageWidth && imageHeight && ( navigate(ROUTE.EDIT_MEME, { id: meme.id.toHexString() }) }> )} ); }; export default MemesGridItem;