Skip to content

Instantly share code, notes, and snippets.

@vicradon
Last active October 30, 2023 19:00
Show Gist options
  • Save vicradon/a2acfd48840f59cde8ba13bc090521d0 to your computer and use it in GitHub Desktop.
Save vicradon/a2acfd48840f59cde8ba13bc090521d0 to your computer and use it in GitHub Desktop.
How to handle form events in React Typescript
const handleInputChange = (event: FormEvent) => {
const target = event.target as HTMLInputElement | HTMLSelectElement;
const { name, value } = target;
setFormData({ ...formData, [name]: value });
};
interface IFormData {
alliance: string[];
cabins: string[];
}
type CheckboxSections = "alliance" | "cabins";
const handleCheckbox = (event: FormEvent, stateKey: CheckboxSections) => {
const target = event.target as HTMLInputElement;
const { name, value } = target;
let values;
if (JSON.parse(value)) {
values = formData[stateKey].filter((value) => value !== name);
} else {
values = [...formData[stateKey], name];
}
setFormData({ ...formData, [stateKey]: values });
};
function handleSubmit(event: FormEvent) {
event.preventDefault();
const target = event.target as HTMLFormElement;
submit(target, { replace: true }); // remix specific
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment