diff --git a/src/components/admin/MediaForm.jsx b/src/components/admin/MediaForm.jsx new file mode 100644 index 0000000..c2e58a3 --- /dev/null +++ b/src/components/admin/MediaForm.jsx @@ -0,0 +1,191 @@ +import React, { useState } from 'react'; +import { supabase } from '../../services/supabase'; + +const MediaForm = ({ onSuccess, onCancel }) => { + const [formData, setFormData] = useState({ + title: '', + type: 'movie', + overview: '', + release_date: '', + poster_url: '', + backdrop_url: '', + is_published: true + }); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + + const handleSubmit = async (e) => { + e.preventDefault(); + setLoading(true); + setError(null); + + try { + const { data, error } = await supabase + .from('media') + .insert([{ + ...formData, + created_by: (await supabase.auth.getUser()).data.user.id + }]) + .select() + .single(); + + if (error) throw error; + + onSuccess(data); + } catch (error) { + console.error('Error creating media:', error); + setError(error.message); + } finally { + setLoading(false); + } + }; + + const handleChange = (e) => { + const { name, value, type, checked } = e.target; + setFormData(prev => ({ + ...prev, + [name]: type === 'checkbox' ? checked : value + })); + }; + + return ( +