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