import React, { useState, useEffect } from 'react'; import { useNavigate } from 'react-router-dom'; import { useAuth } from '../../contexts/AuthContext'; // Adjusted path import { createMedia } from '../../services/pocketbaseService'; // Adjusted path import MediaForm from '../../components/admin/MediaForm'; // Adjusted path const AdminMediaCreatePage = () => { const navigate = useNavigate(); const { user, userProfile, loading: authLoading } = useAuth(); const [error, setError] = useState(null); useEffect(() => { console.log('AdminMediaCreatePage mounted, user:', user); if (authLoading) { console.log('AdminMediaCreatePage: Auth loading...'); return; } if (!user) { console.log('AdminMediaCreatePage: No user, redirecting to login'); navigate('/login'); return; } if (userProfile?.role !== 'admin') { console.log('AdminMediaCreatePage: Access denied'); navigate('/'); return; } console.log('AdminMediaCreatePage: User is admin, ready to create media...'); }, [user, userProfile, authLoading, navigate]); // Depend on user, userProfile, authLoading const handleCreate = async (formData) => { try { // Use the imported createMedia function from pocketbaseService const { data, error: createError } = await createMedia(formData); if (createError) throw createError; console.log('Media created successfully!', data); navigate('/admin/media'); // Redirect back to the media list } catch (err) { console.error('Error creating media:', err); setError(err.message); } }; if (authLoading) { return
Загрузка аутентификации...
; } if (!user || userProfile?.role !== 'admin') { return null; // Redirect handled by useEffect } return (

Добавить медиа

{error && (
Ошибка: {error}
)} navigate('/admin/media')} // Redirect on success onCancel={() => navigate('/admin/media')} // Redirect on cancel />
); }; export default AdminMediaCreatePage;