'use client'; import * as React from 'react'; import QACard from './QACard'; import { KBPair } from '@/lib/kb-data'; interface QABuilderPanelProps { qaList: KBPair[]; onAdd: (q: string, a: string, cat: string, prio: boolean) => void; onUpdate: (id: string, q: string, a: string, cat: string, prio: boolean) => void; onDelete: (id: string) => void; deletingIds: Set; } export default function QABuilderPanel({ qaList, onAdd, onUpdate, onDelete, deletingIds }: QABuilderPanelProps) { const [question, setQuestion] = React.useState(''); const [answer, setAnswer] = React.useState(''); const [category, setCategory] = React.useState('General'); // Track active edit mode const [editingId, setEditingId] = React.useState(null); const categories = ['General', 'HR', 'Support', 'Pricing', 'Technical']; // Vibrant per-category gradients used when a chip is selected. const categoryGradients: Record = { General: 'from-violet-500 to-indigo-500', HR: 'from-pink-500 to-fuchsia-500', Support: 'from-blue-500 to-cyan-500', Pricing: 'from-emerald-500 to-teal-500', Technical: 'from-orange-500 to-rose-500', }; const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); if (!question.trim() || !answer.trim()) return; if (editingId) { onUpdate(editingId, question.trim(), answer.trim(), category.trim(), false); setEditingId(null); } else { onAdd(question.trim(), answer.trim(), category.trim(), false); } // Reset fields setQuestion(''); setAnswer(''); setCategory('General'); }; const handleEditInit = (qa: KBPair) => { setEditingId(qa.id); setQuestion(qa.question); setAnswer(qa.answer); setCategory(qa.category || 'General'); }; const handleCancelEdit = () => { setEditingId(null); setQuestion(''); setAnswer(''); setCategory('General'); }; return (
{/* Panel Headers */}

Custom Q&A

Add direct answers for important questions your users may ask.

{/* Main Q&A Form */}
{editingId && (
Editing Q&A Pair
)} {/* Question Input */}
setQuestion(e.target.value)} placeholder="e.g., What are standard work hours?" className="w-full bg-white/5 border border-white/10 rounded-xl px-3.5 py-2.5 text-sm text-white focus:outline-none focus:ring-1 focus:ring-white/30 placeholder:text-white/30" />
{/* Answer Text Area */}