xref: /MusicFree/src/components/base/input.tsx (revision e650bfb34226e2a09d15cbf7832c4805a87cd60e)
1*e650bfb3S猫头猫import useColors from '@/hooks/useColors';
2*e650bfb3S猫头猫import rpx from '@/utils/rpx';
3*e650bfb3S猫头猫import Color from 'color';
4*e650bfb3S猫头猫import React from 'react';
5*e650bfb3S猫头猫import {StyleSheet, TextInput, TextInputProps} from 'react-native';
6*e650bfb3S猫头猫
7*e650bfb3S猫头猫interface IInputProps extends TextInputProps {
8*e650bfb3S猫头猫    fontColor?: string;
9*e650bfb3S猫头猫    hasHorizonalPadding?: boolean;
10*e650bfb3S猫头猫}
11*e650bfb3S猫头猫
12*e650bfb3S猫头猫export default function Input(props: IInputProps) {
13*e650bfb3S猫头猫    const {fontColor, hasHorizonalPadding = true} = props;
14*e650bfb3S猫头猫    const colors = useColors();
15*e650bfb3S猫头猫
16*e650bfb3S猫头猫    const currentColor = fontColor ?? colors.text;
17*e650bfb3S猫头猫
18*e650bfb3S猫头猫    const defaultStyle = {
19*e650bfb3S猫头猫        color: currentColor,
20*e650bfb3S猫头猫    };
21*e650bfb3S猫头猫
22*e650bfb3S猫头猫    return (
23*e650bfb3S猫头猫        <TextInput
24*e650bfb3S猫头猫            placeholderTextColor={Color(currentColor).alpha(0.7).toString()}
25*e650bfb3S猫头猫            {...props}
26*e650bfb3S猫头猫            style={[
27*e650bfb3S猫头猫                hasHorizonalPadding
28*e650bfb3S猫头猫                    ? styles.container
29*e650bfb3S猫头猫                    : styles.containerWithoutPadding,
30*e650bfb3S猫头猫                defaultStyle,
31*e650bfb3S猫头猫                props?.style,
32*e650bfb3S猫头猫            ]}
33*e650bfb3S猫头猫        />
34*e650bfb3S猫头猫    );
35*e650bfb3S猫头猫}
36*e650bfb3S猫头猫
37*e650bfb3S猫头猫const styles = StyleSheet.create({
38*e650bfb3S猫头猫    container: {
39*e650bfb3S猫头猫        paddingVertical: 0,
40*e650bfb3S猫头猫        paddingHorizontal: rpx(24),
41*e650bfb3S猫头猫    },
42*e650bfb3S猫头猫    containerWithoutPadding: {
43*e650bfb3S猫头猫        padding: 0,
44*e650bfb3S猫头猫    },
45*e650bfb3S猫头猫});
46