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