mirror of
https://github.com/chenasraf/formplex-react.git
synced 2026-05-17 17:48:11 +00:00
eb1e3368646f7aa7ac380f99d37a3f66af6d2c5d
FormPlex - React
Handle forms in your React apps with incredible ease.
FormPlex lets you handle React forms without the hassle.
Example Form
import React from 'react'
import { useForm } from 'formplex-react'
interface MyFormData {
companyName: string
employeesCount: number
revenueRange: '$0-$50K' | '$50-$500K' | '$500K-$1M' | '$1M+'
}
export const MyForm: React.FC = () => {
const { field, handleSubmit, isValid, errors } = useForm<MyFormData>({
onSubmit(values, e) {
console.log('Form submitted:', values)
fetch('/submit', { method: 'POST', body: JSON.stringify(values) })
},
})
return (
<form onSubmit={handleSubmit}>
<div>
<input
type="text"
{...field('companyName', {
minLength: 5,
maxLength: 50,
required: true,
})}
/>
{errors.companyName && <div style={{ color: 'red' }}>{errors.companyName.message}</div>}
</div>
<div>
<input
type="number"
{...field('employeesCount', {
parse: Number,
pattern: /^\d+$/,
required: true,
validate: (n) => (n < 1 ? 'Must have at least 1 employee.' : null),
})}
/>
{errors.employeesCount && (
<div style={{ color: 'red' }}>{errors.employeesCount.message}</div>
)}
</div>
<div>
<select {...field('revenueRange', { required: true })}>
<option value="$0-$50K">$0-$50K</option>
<option value="$50-$500K">$50-$500K</option>
<option value="$500K-$1M">$500K-$1M</option>
<option value="$1M+">$1M+</option>
</select>
{errors.revenueRange && <div style={{ color: 'red' }}>{errors.revenueRange.message}</div>}
</div>
<div>
<button type="submit" disabled={!isValid}>
Save
</button>
</div>
</form>
)
}
Description
Languages
TypeScript
95%
JavaScript
5%