feat: add expo mobile application source code
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
import { useState } from 'react';
|
||||
|
||||
export function useForm<T>(initialValues: T) {
|
||||
const [values, setValues] = useState<T>(initialValues);
|
||||
const [errors, setErrors] = useState<Partial<Record<keyof T, string>>>({});
|
||||
|
||||
const handleChange = (name: keyof T, value: string) => {
|
||||
setValues({
|
||||
...values,
|
||||
[name]: value,
|
||||
});
|
||||
// Clear error when user types
|
||||
if (errors[name]) {
|
||||
setErrors({
|
||||
...errors,
|
||||
[name]: undefined,
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
const setFieldError = (name: keyof T, error: string) => {
|
||||
setErrors({
|
||||
...errors,
|
||||
[name]: error,
|
||||
});
|
||||
};
|
||||
|
||||
return {
|
||||
values,
|
||||
errors,
|
||||
handleChange,
|
||||
setFieldError,
|
||||
setValues,
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user