3.0.0-beta51 • Published 6 years ago

reactors-form v3.0.0-beta51

Weekly downloads
3
License
ISC
Repository
-
Last release
6 years ago

reactors-form

Form components for the Reactors framework.

Reactors is a framework based on React to build hybrid apps that run web, mobile and desktop.

Install

yarn add react reactors reactors-form

Usage

import React, {PureComponent} from 'react';
import {Text, View} from 'reactors';
import {Button, Input, Picker} from 'reactors-form';

const teams = [
  {id: 1, name: 'Red'},
  {id: 2, name: 'Blue'},
  {id: 3, name: 'Green'},
];

class LoginForm extends PureComponent {
  state = {
    email: null,
    error: null,
    team: null,
  };
  render = () => (
    <View>
      {this.state.error && <Text>{this.state.error}</Text>}
      <Input
        email
        name="email"
        value={this.state.email}
        onChangeText={email => this.setState({email})}
      />
      <Picker
        data={teams}
        id="id"
        renderRow={team => (
          <Text>{team.name}</Text>
        )}
        onSelect={teamId => this.setState({team: teamId})}
      />
      <Button onPress={this.submit}>Login</Button>
    </View>
  );
  submit = () => {
    if (!Input.isValid('email')) {
      this.setState({error: Input.getErrorMessage('email')});
    } else {
      this.setState({error: ''}, () => {
        this.props.submit(this.state.email, this.state.team);
      });
    }
  };
}

Components

<Button>

import React, {Component} from 'react';
import {Button} from 'reactors-form';

class MyButton extends Component {
  render() {
    return (
      <Button onPress={(event) => console.log('Pressed!')}>
        Some text or components here ...
      </Button>
    );
  }
}

onPress: (event: Event) => void

A function to be called when user presses button.

style: any

A style that can overwrite button's default style.

<Input />

confirm: boolean default false

Only applicable with password. Show a second input to confirm password. If the two passwords do not match, it will fail on validate.

<Input
  confirm
  password
/>

email: boolean default false

It will fail on validate if not a valid email address. You can specify your own regex via match.

<Input
  email
  match={/\.gmail\.com$/}
/>

max: number | Date default Infinity

If it is a text input, it will fail to validate if characters length is greater than max. It it is a number, it will fail to validate if value is greater than max. If it is a date, it will fail to validate if value is after max.

<Input
  max={100}
/>

<Input
  number
  max={100}
/>

<Input
  date
  max={Date.now()}
/>

min: number | Date default Infinity

If it is a text input, it will fail to validate if characters length is lesser than min. It it is a number, it will fail to validate if value is lesser than min. If it is a date, it will fail to validate if value is before min.

<Input
  min={100}
/>

<Input
  number
  min={100}
/>

<Input
  date
  min={Date.now()}
/>

onChange: (value: string) => void

An action called every time the input changes. First argument is input's current value.

required: boolean default false

It will fail on validate if value is empty.

<Input
  required
/>

<Range>

<Switch>

3.0.0-beta51

6 years ago

3.0.0-beta50

6 years ago

3.0.0-beta49

6 years ago

3.0.0-beta48

6 years ago

3.0.0-beta47

6 years ago

3.0.0-beta46

6 years ago

3.0.0-beta45

6 years ago

3.0.0-beta44

6 years ago

3.0.0-beta43

6 years ago

3.0.0-beta42

6 years ago

3.0.0-beta41

6 years ago

3.0.0-beta40

6 years ago

3.0.0-beta39

6 years ago

3.0.0-beta38

6 years ago

3.0.0-beta37

6 years ago

3.0.0-beta36

6 years ago

3.0.0-beta35

6 years ago

3.0.0-beta34

6 years ago

3.0.0-beta33

6 years ago

3.0.0-beta32

6 years ago

3.0.0-beta31

6 years ago

3.0.0-beta30

6 years ago

3.0.0-beta29

6 years ago

3.0.0-beta28

6 years ago

3.0.0-beta27

6 years ago

3.0.0-beta26

6 years ago

3.0.0-beta25

6 years ago

3.0.0-beta24

6 years ago

3.0.0-beta23

6 years ago

3.0.0-beta22

6 years ago

3.0.0-beta21

6 years ago

3.0.0-beta20

6 years ago

3.0.0-beta19

6 years ago

3.0.0-beta18

6 years ago

3.0.0-beta17

6 years ago

3.0.0-beta16

6 years ago

3.0.0-beta15

6 years ago

3.0.0-beta14

6 years ago

3.0.0-beta13

6 years ago

3.0.0-beta12

6 years ago

3.0.0-beta11

6 years ago

3.0.0-beta10

6 years ago

3.0.0-beta9

6 years ago

3.0.0-beta8

6 years ago

3.0.0-beta7

6 years ago

3.0.0-beta6

6 years ago

3.0.0-beta5

6 years ago

3.0.0-beta4

6 years ago

3.0.0-beta3

6 years ago

3.0.0-beta2

6 years ago

3.0.0-beta1

6 years ago

1.0.0

7 years ago

0.6.7

7 years ago

0.6.6

7 years ago

0.6.5

7 years ago

0.6.4

7 years ago

0.6.3

7 years ago

0.6.2

7 years ago

0.6.1

7 years ago

0.6.0

7 years ago

0.5.3

7 years ago

0.5.2

7 years ago

0.5.1

7 years ago

0.4.0

7 years ago

0.3.4

7 years ago

0.3.3

7 years ago

0.3.2

7 years ago

0.3.1

7 years ago

0.3.0

7 years ago

0.2.10

7 years ago

0.2.9

7 years ago

0.2.7

7 years ago

0.2.6

7 years ago

0.2.5

7 years ago

0.2.4

7 years ago

0.2.3

7 years ago

0.2.2

7 years ago

0.1.2

7 years ago

0.1.1

7 years ago

0.1.0

7 years ago

0.0.6

8 years ago

0.0.5

8 years ago

0.0.4

8 years ago

0.0.2

8 years ago

0.0.1

8 years ago