1.0.0 • Published 4 years ago

react-native-fancy-input v1.0.0

Weekly downloads
2
License
MIT
Repository
github
Last release
4 years ago

React Native Fancy Input

I present you a simple input component that is fancy, easy to use and super flexible.

Features

  • Super easy styling
  • Material like behaviour
  • Flexible

exmaples

Installation

yarn add react-native-fancy-input

or

npm intsall react-native-fancy-input

Usage

This input is a controlled component so your parent component needs to maintain a state.

Basic

import FancyInput from 'react-native-fancy-input';

And inside a component

class InputWrapper extends React.Component {
    state = {
        value: this.props.value || '',
    };

    render() {
        return (
            <View style={{ width: '100%' }}>
                <FancyInput
                    onChange={this.onChange}
                    value={this.state.value}
                />
            </View>
        );
    }

    onChange = value => {
        this.setState({
            value,
        });
    };
}

Configuration props

List of props supported by a component

PropTypeDefaultDescription
backgroundColorstring#ffffffInput background color
defaultPaddingnumber8Default padding for input
errorstringError message displayed under an input
errorColorstring#ac0000Color for an error message background
errorTextColorstring#fffColor for an error message text
isLoadingboolDisplay loading indicator
itemPrependnodePrepend React Node before input
itemAppendnodeAppend React Node after input
labelstringLabel for input
placeholderstringPlaceholder text
primaryColorstring#222222Primary color. Based on it it will generate whole styling.
readOnlyboolMake input read only.
readOnlyColorstring#ecececBackground color for read only field
stylesContainerobject{}Extra styles for a container
stylesErrorobject{}Extra styles for an error
stylesErrorTextobject{}Extra styles for an error text
stylesInputobject{}Extra styles for an input
stylesLabelobject{}Extra styles for a label
stylesLoadingobject{}Extra styles for a loading
textInputPropsobject{}Same props as
valuestringString value
onBlurfuncon blur callback
onChangefuncon change callback
onFocusfuncon focus callback

Examples

Different styling

<FancyInput
    label="Some label"
    primaryColor="#005cc5"
    value={''}
/>

Disabled and loading

<FancyInput
    label="Some label"
    isLoading
    readOnly
    value={''}
/>

With prepend

<FancyInput
    label="Some label"
    itemPrepend={
        <View style={
            { padding: 10, backgroundColor: '#dedede', alignItems: 'center' }
        }>
            <Text style={{ lineHeight: 30, fontWeight: '700' }}>http://</Text>
        </View>
    }
    value={''}
/>

With append icon

<FancyInput
    label="Some label"
    itemAppend={
        <View style={
            { padding: 10, width: 50, backgroundColor: '#de9510', alignItems: 'center' }
        }>
            <Foundation color="#fff" name="dollar" size={32} />
        </View>
    }
    value={''}
/>