xref: /MusicFree/src/components/base/chip.tsx (revision 5589cdf32b2bb0f641e5ac7bf1f6152cd6b9b70e)
1fe32deaaS猫头猫import React, {ReactNode} from 'react';
2fe32deaaS猫头猫import {Pressable, StyleProp, StyleSheet, ViewStyle} from 'react-native';
3fe32deaaS猫头猫import rpx from '@/utils/rpx';
4fe32deaaS猫头猫import ThemeText from './themeText';
5fe32deaaS猫头猫import useColors from '@/hooks/useColors';
6fe32deaaS猫头猫import IconButton from './iconButton';
7fe32deaaS猫头猫
8fe32deaaS猫头猫interface IChipProps {
9fe32deaaS猫头猫    containerStyle?: StyleProp<ViewStyle>;
10fe32deaaS猫头猫    children?: ReactNode;
11fe32deaaS猫头猫    onPress?: () => void;
12fe32deaaS猫头猫    onClose?: () => void;
13fe32deaaS猫头猫}
14fe32deaaS猫头猫export default function Chip(props: IChipProps) {
15fe32deaaS猫头猫    const {containerStyle, children, onPress, onClose} = props;
16fe32deaaS猫头猫    const colors = useColors();
17fe32deaaS猫头猫
18fe32deaaS猫头猫    return (
19fe32deaaS猫头猫        <Pressable
20fe32deaaS猫头猫            onPress={onPress}
21fe32deaaS猫头猫            style={[
22fe32deaaS猫头猫                styles.container,
23fe32deaaS猫头猫                {
24fe32deaaS猫头猫                    backgroundColor: colors.placeholder,
25fe32deaaS猫头猫                },
26fe32deaaS猫头猫                containerStyle,
27fe32deaaS猫头猫            ]}>
28fe32deaaS猫头猫            {typeof children === 'string' ? (
2948036ddaS猫头猫                <ThemeText fontSize="subTitle" numberOfLines={1}>
3048036ddaS猫头猫                    {children}
3148036ddaS猫头猫                </ThemeText>
32fe32deaaS猫头猫            ) : (
33fe32deaaS猫头猫                children
34fe32deaaS猫头猫            )}
35fe32deaaS猫头猫            <IconButton
36fe32deaaS猫头猫                onPress={onClose}
37*5589cdf3S猫头猫                name="x-mark"
38fe32deaaS猫头猫                sizeType="small"
39fe32deaaS猫头猫                style={styles.icon}
40fe32deaaS猫头猫            />
41fe32deaaS猫头猫        </Pressable>
42fe32deaaS猫头猫    );
43fe32deaaS猫头猫}
44fe32deaaS猫头猫
45fe32deaaS猫头猫const styles = StyleSheet.create({
46fe32deaaS猫头猫    container: {
47fe32deaaS猫头猫        height: rpx(56),
48fe32deaaS猫头猫        paddingHorizontal: rpx(18),
49fe32deaaS猫头猫        borderRadius: rpx(28),
50fe32deaaS猫头猫        flexDirection: 'row',
51fe32deaaS猫头猫        alignItems: 'center',
52fe32deaaS猫头猫        justifyContent: 'center',
53fe32deaaS猫头猫    },
54fe32deaaS猫头猫    icon: {
55fe32deaaS猫头猫        marginLeft: rpx(8),
56fe32deaaS猫头猫    },
57fe32deaaS猫头猫});
58