xref: /MusicFree/src/components/base/linkText.tsx (revision 0cffb46aa3c3627b243c4445bb20510a4e9784d0)
1*0cffb46aS猫头猫import React from 'react';
2*0cffb46aS猫头猫import {StyleSheet, TextProps} from 'react-native';
3*0cffb46aS猫头猫import {fontSizeConst, fontWeightConst} from '@/constants/uiConst';
4*0cffb46aS猫头猫import {TouchableOpacity} from 'react-native-gesture-handler';
5*0cffb46aS猫头猫import openUrl from '@/utils/openUrl';
6*0cffb46aS猫头猫import ThemeText from './themeText';
7*0cffb46aS猫头猫
8*0cffb46aS猫头猫type ILinkTextProps = TextProps & {
9*0cffb46aS猫头猫    fontSize?: keyof typeof fontSizeConst;
10*0cffb46aS猫头猫    fontWeight?: keyof typeof fontWeightConst;
11*0cffb46aS猫头猫    linkTo?: string;
12*0cffb46aS猫头猫};
13*0cffb46aS猫头猫
14*0cffb46aS猫头猫export default function LinkText(props: ILinkTextProps) {
15*0cffb46aS猫头猫    return (
16*0cffb46aS猫头猫        <TouchableOpacity
17*0cffb46aS猫头猫            onPress={() => {
18*0cffb46aS猫头猫                props?.linkTo && openUrl(props.linkTo);
19*0cffb46aS猫头猫            }}>
20*0cffb46aS猫头猫            <ThemeText {...props} style={style.linkText}>
21*0cffb46aS猫头猫                {props.children}
22*0cffb46aS猫头猫            </ThemeText>
23*0cffb46aS猫头猫        </TouchableOpacity>
24*0cffb46aS猫头猫    );
25*0cffb46aS猫头猫}
26*0cffb46aS猫头猫
27*0cffb46aS猫头猫const style = StyleSheet.create({
28*0cffb46aS猫头猫    linkText: {
29*0cffb46aS猫头猫        color: '#66ccff',
30*0cffb46aS猫头猫        textDecorationLine: 'underline',
31*0cffb46aS猫头猫    },
32*0cffb46aS猫头猫});
33