1ceb900cdS猫头猫import React from 'react'; 2*5589cdf3S猫头猫import {StyleProp, StyleSheet, TouchableOpacity, ViewStyle} from 'react-native'; 3ceb900cdS猫头猫import rpx from '@/utils/rpx'; 4ceb900cdS猫头猫import Image from './image'; 5ceb900cdS猫头猫import {ImgAsset} from '@/constants/assetsConst'; 6ceb900cdS猫头猫import ThemeText from './themeText'; 7ceb900cdS猫头猫 8ceb900cdS猫头猫interface IImageBtnProps { 9ceb900cdS猫头猫 uri?: string; 10ceb900cdS猫头猫 title?: string; 11ceb900cdS猫头猫 onPress?: () => void; 12ceb900cdS猫头猫 style?: StyleProp<ViewStyle>; 13ceb900cdS猫头猫} 14ceb900cdS猫头猫export default function ImageBtn(props: IImageBtnProps) { 15ceb900cdS猫头猫 const {onPress, uri, title, style: _style} = props ?? {}; 16ceb900cdS猫头猫 return ( 17ceb900cdS猫头猫 <TouchableOpacity 18ceb900cdS猫头猫 activeOpacity={0.5} 19ceb900cdS猫头猫 onPress={onPress} 20ceb900cdS猫头猫 style={[style.wrapper, _style]}> 21ceb900cdS猫头猫 <Image 22ceb900cdS猫头猫 style={style.image} 23ceb900cdS猫头猫 uri={uri} 24ceb900cdS猫头猫 emptySrc={ImgAsset.albumDefault} 25ceb900cdS猫头猫 /> 26ceb900cdS猫头猫 <ThemeText 27ceb900cdS猫头猫 fontSize="subTitle" 28ceb900cdS猫头猫 numberOfLines={2} 29ceb900cdS猫头猫 ellipsizeMode="tail"> 30ceb900cdS猫头猫 {title ?? ''} 31ceb900cdS猫头猫 </ThemeText> 32ceb900cdS猫头猫 </TouchableOpacity> 33ceb900cdS猫头猫 ); 34ceb900cdS猫头猫} 35ceb900cdS猫头猫 36ceb900cdS猫头猫const style = StyleSheet.create({ 37ceb900cdS猫头猫 wrapper: { 38ceb900cdS猫头猫 width: rpx(210), 39ceb900cdS猫头猫 height: rpx(290), 40ceb900cdS猫头猫 flexGrow: 0, 41ceb900cdS猫头猫 flexShrink: 0, 42ceb900cdS猫头猫 }, 43ceb900cdS猫头猫 image: { 44ceb900cdS猫头猫 width: rpx(210), 45ceb900cdS猫头猫 height: rpx(210), 46ceb900cdS猫头猫 borderRadius: rpx(12), 47400ab63dS猫头猫 marginBottom: rpx(16), 48ceb900cdS猫头猫 }, 49ceb900cdS猫头猫}); 50