1import React from 'react'; 2import rpx from '@/utils/rpx'; 3import {StyleSheet, Text, View} from 'react-native'; 4import Icon from 'react-native-vector-icons/MaterialCommunityIcons'; 5import {fontSizeConst} from '@/constants/uiConst'; 6 7interface IToastBaseProps { 8 text: string; 9 iconName: string; 10 iconColor: string; 11} 12function ToastBase(props: IToastBaseProps) { 13 const {text, iconName, iconColor} = props; 14 return ( 15 <View style={styles.toastBasic}> 16 <Icon style={styles.icon} name={iconName} color={iconColor} /> 17 <Text style={styles.text}>{text}</Text> 18 </View> 19 ); 20} 21 22const toastConfig = { 23 success: ({text1}: any) => ( 24 <ToastBase text={text1} iconName="check-circle" iconColor="#457236" /> 25 ), 26 warn: ({text1}: any) => ( 27 <ToastBase text={text1} iconName="alert-circle" iconColor="#de7622" /> 28 ), 29}; 30 31export default toastConfig; 32 33const styles = StyleSheet.create({ 34 toastBasic: { 35 width: rpx(600), 36 height: rpx(84), 37 borderRadius: rpx(48), 38 backgroundColor: '#fbeee2', 39 flexDirection: 'row', 40 alignItems: 'center', 41 }, 42 text: { 43 fontSize: fontSizeConst.content, 44 includeFontPadding: false, 45 marginLeft: fontSizeConst.tag, 46 color: '#333333', 47 }, 48 icon: { 49 fontSize: fontSizeConst.appbar, 50 includeFontPadding: false, 51 marginLeft: fontSizeConst.content, 52 }, 53}); 54