
Research
Malicious fezbox npm Package Steals Browser Passwords from Cookies via Innovative QR Code Steganographic Technique
A malicious package uses a QR code as steganography in an innovative technique.
react-formr
Advanced tools
Centralised Solution for managing values & validation in react native, the options are unlimited
TextInput
required to handle form.onFinishFocus
on last input submit.onChange
props.Easy React Native Form management with react-formr
Yarn
yarn add react-formr
NPM
npm i --save react-formr
Formr
import Formr from 'react-formr';
export const App = () => {
return (
<View>
<Formr
formFields={{ email: '', phone: '' }}
validation={{
email: { required: true, type: 'email' },
phone: { type: 'phone' }
}}
>
{({
onChangeHandler,
onBlurHandler,
onSubmitEditingHandler,
onSubmitHandler,
inputBinder,
refsHandler,
values,
touched,
valid
}) => {
<>
<TextInput
style={{
borderBottomColor: 'black',
borderWidth: 1,
width: '100%'
}}
onChangeText={(e) => onChangeHandler('email', e)}
onBlur={() => onBlurHandler('email')}
value={values.email}
ref={(ref) => refsHandler('password', ref)}
/>
{touched.email && !valid.email && (
<Text>Not valid</Text>
)}
// Using input binder
<TextInput
style={{
borderBottomColor: 'black',
borderWidth: 1,
width: '100%'
}}
{...inputBinder('phone')}
/>
{touched.phone && !valid.phone && (
<Text>Not valid</Text>
)}
<Button onPress={() => onSubmitHandler(console.log)} title="Submit" color="#841584" />
</>;
}}
</Formr>
</View>
);
};
Name | Type | Default | Description | Example |
---|---|---|---|---|
formFields | StringObject (Object) | {} | Form fields values | {email:""} |
validation | FormrValidation (Object) | {} | Form fields for validation | {email:{required:true,type:"email"}} |
onChange | Function | (values:StringObject)=>void | Function for observing fields changes | |
onFinishFocus | Function | (values:StringObject)=>void | Function to trigger on all input focus finished on hitting return key on last input. |
To control form fields, The Formr
component will provide a function that include
Name | Type | Usage | Descripion | Example |
---|---|---|---|---|
inputBinder | Function | inputBinder( key:string ) | Which includes almost everything of TextInput : value , onChangeText , onBlur , ref , onSubmitEditing also valid & touched if you are making custom input component with these props | <TextInput {...inputBinder('email')} /> |
onChangeHandler | Function | onChangeHandler( key:string, value:string ) | To set value of the field, call this function with arguments: key - which input field to update. value to that field | <TextInput onChangeText={ (text)=> onHandleChange("email":text) } /> |
onBlurHandler | Function | onBlurHandler( key:string ) | To set which field is blurred, call this function with key on blurrEvent | <TextInput onBlur={ ()=> onBlurHandler("email") } /> |
refsHandler | Function | refsHandler( key:string, ref:any ) | To set which field is blurred, call this function with key on blurrEvent | <TextInput ref={ (ref)=> refsHandler("email",ref) } /> |
onSubmitEditingHandler | Function | onSubmitEditingHandler( key:string ) | To set which field is blurred, call this function with key on blurrEvent | <TextInput onSubmitEditing={ ()=> onSubmitEditingHandler("email") } /> |
onSubmitHandler | Function | onSubmitHandler( callback:(values)=>{} ) | This handle submit button & validation flow. This is used to submit form. | <Button title="Submit" onPress={ ()=> onSubmitHandler( (values)=> submitFormToApi(values) ) } /> |
values | { [key:string]:string, ... } | values={ values[key] } | Objct of field values, can be used for value input for the TextInput | <TextInput value={values.email} /> |
valid | { [key:string]:boolean, ... } | Its is This object contains validation results,true :valid and false :validation fail. | {!valid.email && <Text> This fields is invalid </Text>} | |
touched | { [key:string]:boolean, ... } | Its is used to show error message on validation fail. | {touched.email && !valid.email && <Text> This fields is invalid </Text>} |
FAQs
Form managing component for React & React Native
We found that react-formr demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
A malicious package uses a QR code as steganography in an innovative technique.
Research
/Security News
Socket identified 80 fake candidates targeting engineering roles, including suspected North Korean operators, exposing the new reality of hiring as a security function.
Application Security
/Research
/Security News
Socket detected multiple compromised CrowdStrike npm packages, continuing the "Shai-Hulud" supply chain attack that has now impacted nearly 500 packages.