'use client';
import { useState } from 'react';
import { createClient } from '@/utils/supabase/client';
import { FiChevronLeft, FiEdit2, FiTrash2 } from 'react-icons/fi';
import { Quiz } from '../[id]/page';
import { QuizDialog } from './QuizDialog';
interface QuizHeaderProps {
quiz: Quiz;
onBack: () => void;
onQuizUpdate: (updatedQuiz: Partial<Quiz>) => void;
}
export function QuizHeader({ quiz, onBack, onQuizUpdate }: QuizHeaderProps) {
const [isEditDialogOpen, setIsEditDialogOpen] = useState(false);
const supabase = createClient();
const handleEditQuiz = async (updatedQuiz: { name: string; date: string; url: string }) => {
const { error } = await supabase
.from('quizes')
.update(updatedQuiz)
.eq('id', quiz.id);
if (error) {
console.error('Error updating quiz:', error);
alert('Грешка при обновяването на куиза');
return;
}
onQuizUpdate(updatedQuiz);
};
const handleDeleteQuiz = async () => {
if (!confirm('Сигурни ли сте, че искате да изтриете този куиз?')) {
return;
}
const { error } = await supabase
.from('quizes')
.delete()
.eq('id', quiz.id);
if (error) {
console.error('Error deleting quiz:', error);
alert('Грешка при изтриването на куиза');
return;
}
onBack();
};
return (
<>
<div className="shadow bg-white rounded-lg">
<div className="flex items-center justify-between p-6">
<div className="flex items-center gap-4">
<button
onClick={onBack}
className="text-blue-600 hover:text-blue-800 flex items-center"
>
<FiChevronLeft className="w-5 h-5" />
</button>
<div className="text-2xl text-gray-800">{quiz.name}</div>
</div>
<div className="flex items-center gap-2">
<button
onClick={() => setIsEditDialogOpen(true)}
className="btn btn-sm btn-ghost"
>
<FiEdit2 className="w-4 h-4" />
</button>
<button
onClick={handleDeleteQuiz}
className="btn btn-sm btn-ghost text-red-600 hover:text-red-700"
>
<FiTrash2 className="w-4 h-4" />
</button>
</div>
</div>
</div>
<QuizDialog
isOpen={isEditDialogOpen}
onClose={() => setIsEditDialogOpen(false)}
onSave={handleEditQuiz}
initialValues={quiz}
/>
</>
);
}