xref: /MusicFree/src/components/base/iconTextButton.tsx (revision e650bfb34226e2a09d15cbf7832c4805a87cd60e)
1*e650bfb3S猫头猫import React from 'react';
2*e650bfb3S猫头猫import {StyleProp, StyleSheet, ViewProps} from 'react-native';
3*e650bfb3S猫头猫import rpx from '@/utils/rpx';
4*e650bfb3S猫头猫import ThemeText from './themeText';
5*e650bfb3S猫头猫import Icon from 'react-native-vector-icons/MaterialCommunityIcons';
6*e650bfb3S猫头猫import {iconSizeConst} from '@/constants/uiConst';
7*e650bfb3S猫头猫import useColors from '@/hooks/useColors';
8*e650bfb3S猫头猫import {TouchableOpacity} from 'react-native-gesture-handler';
9*e650bfb3S猫头猫
10*e650bfb3S猫头猫interface IProps {
11*e650bfb3S猫头猫    icon: string;
12*e650bfb3S猫头猫    onPress?: () => void;
13*e650bfb3S猫头猫    containerStyle?: StyleProp<ViewProps>;
14*e650bfb3S猫头猫    children?: string;
15*e650bfb3S猫头猫}
16*e650bfb3S猫头猫export default function (props: IProps) {
17*e650bfb3S猫头猫    const {icon, children, onPress} = props;
18*e650bfb3S猫头猫    const colors = useColors();
19*e650bfb3S猫头猫
20*e650bfb3S猫头猫    return (
21*e650bfb3S猫头猫        <TouchableOpacity style={style.container} onPress={onPress}>
22*e650bfb3S猫头猫            <Icon name={icon} size={iconSizeConst.light} color={colors.text} />
23*e650bfb3S猫头猫            <ThemeText style={style.text} fontSize={'content'}>
24*e650bfb3S猫头猫                {children}
25*e650bfb3S猫头猫            </ThemeText>
26*e650bfb3S猫头猫        </TouchableOpacity>
27*e650bfb3S猫头猫    );
28*e650bfb3S猫头猫}
29*e650bfb3S猫头猫
30*e650bfb3S猫头猫const style = StyleSheet.create({
31*e650bfb3S猫头猫    container: {
32*e650bfb3S猫头猫        flexDirection: 'row',
33*e650bfb3S猫头猫        alignItems: 'center',
34*e650bfb3S猫头猫        paddingHorizontal: rpx(16),
35*e650bfb3S猫头猫        paddingVertical: rpx(8),
36*e650bfb3S猫头猫    },
37*e650bfb3S猫头猫    text: {
38*e650bfb3S猫头猫        marginLeft: rpx(8),
39*e650bfb3S猫头猫    },
40*e650bfb3S猫头猫});
41