39 lines
831 B
JavaScript
39 lines
831 B
JavaScript
import { useEffect, useState } from 'react';
|
|
|
|
export function useMovieForm(initialData = {}, onSubmit) {
|
|
const [formData, setFormData] = useState({
|
|
title: '',
|
|
poster: ''
|
|
});
|
|
|
|
useEffect(() => {
|
|
if (initialData) {
|
|
setFormData({
|
|
title: initialData.title || '',
|
|
poster: initialData.poster || ''
|
|
});
|
|
}
|
|
}, [initialData]);
|
|
|
|
const handleChange = (e) => {
|
|
const { name, value } = e.target;
|
|
setFormData(prev => ({
|
|
...prev,
|
|
[name]: value
|
|
}));
|
|
};
|
|
|
|
const handleSubmit = (e) => {
|
|
e.preventDefault();
|
|
onSubmit({
|
|
...initialData,
|
|
...formData
|
|
});
|
|
};
|
|
|
|
return {
|
|
formData,
|
|
handleChange,
|
|
handleSubmit
|
|
};
|
|
} |