import { useState } from "react"; import { useNavigate } from "react-router-dom"; import { createMedia } from "../services/supabase"; import { useAuth } from "../contexts/AuthContext"; function AdminMediaPage() { const navigate = useNavigate(); const { currentUser, userProfile } = useAuth(); const [loading, setLoading] = useState(false); const [error, setError] = useState(""); const [mediaData, setMediaData] = useState({ title: "", type: "movie", poster_url: "", backdrop_url: "", overview: "", release_date: "", is_published: false, }); // Check if user has admin/moderator privileges if ( !userProfile?.role || !["admin", "moderator"].includes(userProfile.role) ) { return (

Access Denied

You don't have permission to access this page.

); } const handleInputChange = (e) => { const { name, value, type, checked } = e.target; setMediaData((prev) => ({ ...prev, [name]: type === "checkbox" ? checked : value, })); }; const handleSubmit = async (e) => { e.preventDefault(); setLoading(true); setError(""); try { const newMedia = await createMedia({ ...mediaData, created_by: currentUser.id, }); navigate(`/media/${newMedia.id}`); } catch (err) { setError("Failed to create media. Please try again."); console.error("Error creating media:", err); } finally { setLoading(false); } }; return (

Create New Media

{error && (
{error}
)}